我试图从字符串中删除特殊字符,如果它们是单独的而不是单词的一部分。
例子是
var str = "This i$ @ gr£@t t£$t !: i think i$nt it%";
应该成为
var newstr = "This i$ gr£@t t£$t i think i$nt it%";
答案 0 :(得分:4)
使用此模式:
var str = "This i$ @ gr£@t t£$t !: i think i$nt it%";
var result = str.replace(/(?:^|\s+)\W+(?:\s+|$)/g," ");
document.write(result);

答案 1 :(得分:0)
您可以使用此模式:
^[^\w\s]+\B\s*|\s+[^\w\s]+\B(\s)\s*|\s*\B[^\w\s]+$
用$1
代替。这会将删除的单词周围的空白折叠成一个空格。
缺点:如果您对哪些字符被视为特殊字符"感到不满意,则必须修改字符类{{1}的所有三个出现}。