我想只替换所有的单个等号。
var mystr = 'ONE == TWO ... THREE==FOUR ... FIVE = SIX ... SEVEN=EIGHT' ... NINE := TEN;
return mystr.replace(/(?=\=)([=]{1})(?!\=)/gm, '==');我得到了以下信息:
ONE === TWO ... THREE===FOUR ... FIVE == SIX ... SEVEN==EIGHT ... NINE :== TEN数字5-6,7-8,都可以。但是,我想要这样:
ONE == TWO ... THREE==FOUR ... FIVE == SIX ... SEVEN==EIGHT ... NINE := TEN我的正则表达式有什么问题?
发布于 2013-06-12 21:47:24
因为Javascript不支持后视断言,所以你不能检查之前的char是否是相等的char。但您可以匹配它并再次插入它。
return mystr.replace(/([^=:])=(?!=)/g, '$1==');看看吧,here on Regexr。
([^=:])是一个被否定的字符类,它匹配除=和:之外的任何字符。此字符由$1重新插入到替换字符串中。
当字符串中的第一个字符是单个"=“时,这将不起作用,因为[^=:]不会匹配字符串的开头。
发布于 2013-06-12 21:48:02
您也许可以使用下面的正则表达式:
([^=:])=(?!=)所以这将匹配开头不是=或:的符号,然后是=符号,后面没有=。
然后使用$1==的替代品。
测试过的here
如果你也想要一张照片..。

https://stackoverflow.com/questions/17067065
复制相似问题