从字符串中删除特殊字符(如果它们是单独的而不是单词的一部分)

时间:2016-05-22 10:32:02

标签: javascript regex

我试图从字符串中删除特殊字符,如果它们是单独的而不是单词的一部分。

例子是

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%";

2 个答案:

答案 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代替。这会将删除的单词周围的空白折叠成一个空格。

Demo.

缺点:如果您对哪些字符被视为特殊字符"感到不满意,则必须修改字符类{{1}的所有三个出现}。