我想替换“&”字符以及可能会干扰网址语法的字符。
到目前为止,我尝试过:
myText = myText.replace(/[^a-zA-Z0-9-. ]/g,'');
可能适用于其他字符(未测试),但不理解我最关心的“&”,因此我在组合中添加了以下行,但也没有摆脱掉&:
myText = myText.replace(/&/g,'');
但都不起作用,如何替换这个特殊字符?
解决方案:
代码在交付时正在读取&
,而不是&
,所以我必须这样做:
myText = myText.replace(/&/g,'');
它有效。
片段:
var text = "god & damn it";
console.log(text.replace(/&|&/g,''));
答案 0 :(得分:0)
console.log("m&yText".replace(/\&/g,''))
我建议使用&作为正则表达式字符,在&之前添加反斜杠字符以“转义”。您希望正则表达式查找并替换任何文字和字符。
答案 1 :(得分:0)
根据您的评论,您要替换的是这个&
字符的html编码&
。
使用lodash ,您可以_.unescape
替换之前的字符串:
myText = _.unescape(myText).replace(/&/g, '');
通过这种方式,您可以处理&
和&
的情况。然后,如果您必须将该文本附加到html中,则应该_.escape
将其返回,以防止产生怪异的副作用:_.escape(myText);
。
不带破折号,您只需在正则表达式中进行搜索即可
myText = myText.replace(/&|&/g, '');
但是,当存在其他特殊字符时,此方法可能会有副作用,因为它也删除了&
字符,例如,字符串"Three is > than two & one"
最终看起来像"Three is gt; than two one"
(注意中间的丑陋 gt; )