如何在符号(和)上编写正则表达式错误

How to write regex expression error on symbol ( and )

本文关键字:正则表达式 错误 符号      更新时间:2023-09-26

我想用下面的代码代替":)":

txt = txt.replace(':)','<img title=":)" src="resource/images/smiles/smile.png" style="'+style+'">');

但是如果符号大于1,这个代码不能处理这个。我尝试像这样使用正则表达式:

txt = txt.replace(/:)/g,'<img title=":)" src="resource/images/smiles/smile.png" style="'+style+'">');

但是这个代码是错误的,如何在这种情况下写一个正确的正则表达式?

试试这个
您必须从正则表达式中去掉一些无意义的转义字符,例如

) = ')    

代码变成

var pat = /:')/g;
var str = '<img title=":)" src="resource/images/smiles/smile.png" style="'+style+'">';
txt = txt.replace(pat,str);

括号是正则表达式中的特殊字符,当将其放在双斜杠之间时需要转义。应该是:

/:')/g
不是

/:)/g

您必须转义(,它对于正则表达式具有特殊含义:

txt = txt.replace(/:')/g,'<img title=":)" src="resource/images/smiles/smile.png" style="'+style+'">');

您应该使用escape),就像 var txt = ':)abcd:)'; var style = ''; txt = txt.replace(/:')/g,'<img title=":)" src="resource/images/smiles/smile.png" style="'+style+'">'); console.log(txt);