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