JavaScript正则表达式 - 只接受两个没有特殊字符的单词

时间:2014-04-18 11:04:03

标签: javascript regex

我在http://regex101.com/#javascript

中尝试以下模式

模式:[a-zA-Z]+\s{1}[a-zA-Z]+

字符串:'Testing Only two characters'

http://regex101.com/r/gT0uX9只突出显示字符串的前两个单词,但是当我在小提琴中尝试它时,它说的是真的。问题是什么?我做错了吗?

Fiddle

2 个答案:

答案 0 :(得分:3)

因为.test()检查正则表达式是否匹配。在你的情况下,它正确匹配,因此是真的

doc说的是什么:

  

只要您想知道某个模式是否在中找到,就使用test()   string(类似于String.search方法); 以获取更多信息   (但执行速度较慢)使用exec方法(类似于   String.match方法)。与exec(或与其结合)一样,测试   在同一个全局正则表达式实例上多次调用   将超过上一场比赛。

强调我的) 如果您只想要两个单词,则可以使用锚点^$

^[a-zA-Z]+\s{1}[a-zA-Z]+$

答案 1 :(得分:2)

它返回true,因为您的字符串包含两个单词的字符串。如果要检查字符串是否包含两个单词的字符串,请使用锚点^$作为字符串的开头和字符串结尾:< / p>

^[a-zA-Z]+\s{1}[a-zA-Z]+$