JavaScript正则表达式大括号
根据雄辩的JavaScript: 要指示模式应该出现精确的次数,请使用大括号。例如,将{4}放在一个元素之后,要求它正好出现四次 然而,在Chrome中,我得到以下信息:JavaScript正则表达式大括号,javascript,regex,Javascript,Regex,根据雄辩的JavaScript: 要指示模式应该出现精确的次数,请使用大括号。例如,将{4}放在一个元素之后,要求它正好出现四次 然而,在Chrome中,我得到以下信息: var str = /a{4}/ str.test('aaaaa') // → true 上面的段落暗示str.test()只应在正好有4个a时返回true。相反,当至少有4个a时,它返回true 也 也可以这样指定范围:{2,4}表示元素必须至少出现两次,最多出现四次 但是,与上述情况相同: var str = /a{2,
var str = /a{4}/
str.test('aaaaa')
// → true
上面的段落暗示str.test()只应在正好有4个a时返回true。相反,当至少有4个a时,它返回true
也
也可以这样指定范围:{2,4}表示元素必须至少出现两次,最多出现四次
但是,与上述情况相同:
var str = /a{2,4}/
str.test('aaaaa')
// → true
是否有我误解的地方?它返回true,因为有一个子字符串满足要求。见: 无论何时,只要您想知道是否在 串 您需要在模式中显式设置字符串的开头/结尾:
var str = /^a{4}$/
str.test('aaaaa')
-> false
.test
检查字符串中是否有与您的模式匹配的部分:
这个正则表达式:/a{4}/
可以在5个a
的字符串中找到2个匹配项:
'aaaaa'
^^^^
^^^^
您需要告诉正则表达式严格查看字符串的开头和结尾:
var str=/^a{4}$/
console.log(str.test('aaaaa'))
正则表达式测试字符串是否包含aaaa子字符串。指定要测试精确匹配的行的起点和终点。以下代码段返回false
:
var str = /^a{4}$/
str.test('aaaaa')
将表达式和测试字符串放入,它将为您提供一个易于理解的可视化表示,说明前者如何应用于后者,让我们明白为什么你的测试刺确实是匹配的。你的误解是,在有5个a的字符串中,有两个地方a正好出现4次
aaaa.
和.aaaa
。正则表达式与第一个匹配,但技术上也可以与第二个匹配。