首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript regex -替换单个字符

Javascript regex -替换单个字符
EN

Stack Overflow用户
提问于 2013-06-12 21:40:10
回答 2查看 1.8K关注 0票数 4

我想只替换所有的单个等号。

代码语言:javascript
复制
var mystr = 'ONE == TWO ... THREE==FOUR ... FIVE = SIX ... SEVEN=EIGHT' ... NINE := TEN;
return mystr.replace(/(?=\=)([=]{1})(?!\=)/gm, '==');

我得到了以下信息:

代码语言:javascript
复制
ONE === TWO ... THREE===FOUR ... FIVE == SIX ... SEVEN==EIGHT ... NINE :== TEN

数字5-6,7-8,都可以。但是,我想要这样:

代码语言:javascript
复制
ONE == TWO ... THREE==FOUR ... FIVE == SIX ... SEVEN==EIGHT ... NINE := TEN

我的正则表达式有什么问题?

EN

回答 2

Stack Overflow用户

发布于 2013-06-12 21:47:24

因为Javascript不支持后视断言,所以你不能检查之前的char是否是相等的char。但您可以匹配它并再次插入它。

代码语言:javascript
复制
return mystr.replace(/([^=:])=(?!=)/g, '$1==');

看看吧,here on Regexr

([^=:])是一个被否定的字符类,它匹配除=和:之外的任何字符。此字符由$1重新插入到替换字符串中。

当字符串中的第一个字符是单个"=“时,这将不起作用,因为[^=:]不会匹配字符串的开头。

票数 4
EN

Stack Overflow用户

发布于 2013-06-12 21:48:02

您也许可以使用下面的正则表达式:

代码语言:javascript
复制
([^=:])=(?!=)

所以这将匹配开头不是=:的符号,然后是=符号,后面没有=

然后使用$1==的替代品。

测试过的here

如果你也想要一张照片..。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17067065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档