1

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

var string = xxxx † yyyy § zzzz 

我想删除那些特殊字符并只得到:

字符串 = xxxx yyyy zzzz

我试过这个正则表达式:

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

像那样:

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

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

你知道我该怎么做吗?

正则表达式运行良好,请参见示例:http ://regexr.com?31rrj

4

4 回答 4

4

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

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

var string = "xxxx † yyyy § zzzz";

不是

var string = xxxx † yyyy § zzzz;
于 2012-08-16T14:32:11.833 回答
1

你应该使用RegExp如下:

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

接下来是类的语法RegExp

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

您可以阅读有关此类的文档。

于 2012-08-16T14:29:55.720 回答
1

使用 JavaScript 的 string.replace() 方法怎么样?它可能比 RegEx 更快,并且绝对更具可读性,尽管它可能需要几行代码。

这是关于替换http://www.bennadel.com/blog/142-Ask-Ben-Javascript-String-Replace-Method.htm的完整文章- Ben 也将 RegEx 与 string.replace 一起使用。这应该有你需要的一切。

于 2012-08-16T14:32:50.807 回答
1

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

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

removeEntities("xxxx † yyyy § zzzz"); // => "xxxx yyyy zzzz"
于 2012-08-16T14:36:39.620 回答