我在http://regex101.com/#javascript
中尝试以下模式模式:[a-zA-Z]+\s{1}[a-zA-Z]+
字符串:'Testing Only two characters'
http://regex101.com/r/gT0uX9只突出显示字符串的前两个单词,但是当我在小提琴中尝试它时,它说的是真的。问题是什么?我做错了吗?
答案 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]+$