0
我想刪除所有不符合單詞的特殊字符。例如:Javascript刪除不符合單詞的特殊字符
Lorem! ?!存有.. do'lor ..仰臥坐(阿梅特)
會變成這個樣子:
的Lorem! ipsum .. do'lor sit-sit amet,
我使用這個正則表達式replace(/[^\w\s]/gi, '')
,但它會刪除所有特殊字符。請幫助我..謝謝^^
我想刪除所有不符合單詞的特殊字符。例如:Javascript刪除不符合單詞的特殊字符
Lorem! ?!存有.. do'lor ..仰臥坐(阿梅特)
會變成這個樣子:
的Lorem! ipsum .. do'lor sit-sit amet,
我使用這個正則表達式replace(/[^\w\s]/gi, '')
,但它會刪除所有特殊字符。請幫助我..謝謝^^
不幸的是,Javascript正則表達式不支持向前/向後看,但你可以指定一個函數作爲替換參數。下面的代碼片段不會產生你所需要的精確結果,而不是很優化,但也許這點你在正確的方向:
var text = 'Lorem! ?! ipsum.. do\'lor .. sit-sit (amet,)';
text.replace(/(.)([^\w])/g, function($0, $1, $2) {
if (/\w/.test($1)) {
return $1 + $2;
}
if (/[^\w\s]/.test($1)) {
return /\s/.test($2) ? ' ' : '';
}
return $1;
});
替換功能得到完全匹配的第一個參數($ 0)和也包括所有其他匹配組($ 1,$ 2,...)。函數的返回值然後用作實際替換。
謝謝你的解決方案.. :) – Spella