在 javascript 中用正则表达式替换 '&' 字符
replace '&' character with reg exp in javascript
我想替换“&”字符以及可能会干扰网址语法的字符。
到目前为止我试过:
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,''));
console.log("m&yText".replace(/\&/g,''))
我可以建议在 & 之前添加反斜杠字符至于 'escape' 使用 & 作为正则表达式字符。您希望正则表达式查找并替换任何文字 & 字符。
根据您的评论,您要替换的是 &
,&
字符的 html 编码。
使用 lodash 你可以 _.unescape
替换之前的字符串:
myText = _.unescape(myText).replace(/&/g, '');
这样您就可以处理 &
和 &
两种情况。然后,如果您必须在 html 中附加该文本,您应该 _.escape
将其加回去以防止出现奇怪的副作用:_.escape(myText);
.
没有 lodash 你可以在正则表达式中同时搜索:
myText = myText.replace(/&|&/g, '');
但是 当存在其他特殊字符时,此方法会产生副作用,因为它也会删除 &
字符,例如此字符串 "Three is > than two & one"
最终看起来像这样 "Three is gt; than two one"
(注意中间丑陋的 gt;)
我想替换“&”字符以及可能会干扰网址语法的字符。
到目前为止我试过:
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,''));
console.log("m&yText".replace(/\&/g,''))
我可以建议在 & 之前添加反斜杠字符至于 'escape' 使用 & 作为正则表达式字符。您希望正则表达式查找并替换任何文字 & 字符。
根据您的评论,您要替换的是 &
,&
字符的 html 编码。
使用 lodash 你可以 _.unescape
替换之前的字符串:
myText = _.unescape(myText).replace(/&/g, '');
这样您就可以处理 &
和 &
两种情况。然后,如果您必须在 html 中附加该文本,您应该 _.escape
将其加回去以防止出现奇怪的副作用:_.escape(myText);
.
没有 lodash 你可以在正则表达式中同时搜索:
myText = myText.replace(/&|&/g, '');
但是 当存在其他特殊字符时,此方法会产生副作用,因为它也会删除 &
字符,例如此字符串 "Three is > than two & one"
最终看起来像这样 "Three is gt; than two one"
(注意中间丑陋的 gt;)