用于删除特殊字符的Javascript和RegEx

时间:2012-08-16 14:27:48

标签: javascript regex

我在javascript中有一个字符串,里面有一些特殊字符。

var string = xxxx † yyyy § zzzz 

我想删除这些特殊字符并仅获取:

string = xxxx yyyy zzzz

我试过这个正则表达式:

&#?[a-z0-9]+;

就像那样:

string = string.replace(/&#?[a-z0-9]+;/g, "");

但特殊字符与此正则表达式不匹配。

请您知道我该怎么做?

正则表达式效果很好,请参阅示例:http://regexr.com?31rrj

4 个答案:

答案 0 :(得分:4)

这对我来说很好。
工作示例:http://jsfiddle.net/JwrZ6/

这可能是你的语法,字符串必须用“围绕它们来定义。

var string = "xxxx † yyyy § zzzz";

不是

var string = xxxx † yyyy § zzzz;

答案 1 :(得分:1)

您应该使用RegExp,如下所示:

string.replace( new RegExp( regexp_expression, 'g' ), '' );

RegExp类的语法是下一个:

var regexp = new RegExp(pattern [, flags]);

您可以在此课程上阅读documentation

答案 2 :(得分:1)

使用JavaScript的string.replace()方法怎么样?它可能比RegEx更快,更可读,但它可能需要几行代码。

这是关于替换http://www.bennadel.com/blog/142-Ask-Ben-Javascript-String-Replace-Method.htm的整个写作 - 而Ben也使用RegEx和string.replace。这应该包含你需要的一切。

答案 3 :(得分:1)

您可以使用正则表达式删除HTML实体,如下所示:

function removeEntities(str) {
  return (''+str).replace(/&\w+;\s*/g, '');
}

removeEntities("xxxx † yyyy § zzzz"); // => "xxxx yyyy zzzz"