只有当模式在整个字符串中匹配时,正则表达式测试才会返回true。使用Javascript

时间:2016-10-21 13:06:05

标签: javascript regex

我真的没有把它放在一个问题的形式,但我必须编写一个匹配模式+a+的字符串的函数。

字符串应该是格式,其中每个字母都被" +"包围。登录。

我想出了这个表达式var letter = /\+\w\+/;。这样做的问题是,即使模式在整个字符串中只匹配一次,它也会返回true。

例如,

"+f+++a+b+c++"返回true,但对"+f=++a+b+c++"也返回true。

谢谢

1 个答案:

答案 0 :(得分:0)

您可以匹配反向并抛出错误

这样的东西
"+f+++a=+b+=c++".match(/(\w=|=\w)/g) == null ; //false

"+f+++a+b+c++".match(/(\w=|=\w)/g) == null ; //true

以上回答仅检查=作为可以分隔角色的角色,其余为

"f+++a+b+c++".match(/(\w[^+]|[^+]\w)/g) == null ; //true

"+f+++.a+b+c++".match(/(\w[^+]|[^+]\w)/g) == null ; //false

对于第一个字符不是+的边界情况,请尝试

var word = "+f+++a+b+c++";
!word[0].match(/\w/) && word.match(/(\w[^+]|[^+]\w)/g) == null ; //true

var word = "+f+++.a+b+c++";
!word[0].match(/\w/) && word.match(/(\w[^+]|[^+]\w)/g) == null ; //false