这个Javascript的正则表达式是否正确

Som*_*one 1 javascript regex

我希望用户输入3个字符,它们应该是字母而不是数字和特殊字符

 if(txt1.match('[A-Za-z]{3}')){}
Run Code Online (Sandbox Code Playgroud)

上述条件是否正确?

Tim*_*own 8

您可以使用i正则表达式标志使匹配大小写不敏感并简化正则表达式.此外,没有^$,任何包含三个连续字母的字符串都将匹配.您需要分别添加^$匹配字符串的开头和结尾.最后,如果您不需要捕获匹配的文本,则应使用test()正则表达式对象的方法来获取简单的布尔值:

if ( /^[a-z]{3}$/i.test(txt1) ) {}
Run Code Online (Sandbox Code Playgroud)


And*_*y E 6

不,你没有使用正确的分隔符作为正则表达式,例如/reg/:

if(txt1.match(/[A-Za-z]{3}/)){}
Run Code Online (Sandbox Code Playgroud)

虽然match()将从传递的任何字符串构造一个正则表达式,但是当您需要开始转义字符时,您可能会感到困惑.

您还需要开始和结束锚,^$分别以确保正则表达式从字符串到字符串的结尾开始匹配:

if(txt1.match(/^[A-Za-z]{3}$/)){}
Run Code Online (Sandbox Code Playgroud)

最后,如果您只想要一个truefalse检查(在这种情况下,您),请使用test()而不是match():

if(/^[A-Za-z]{3}$/.test(txt1)){}
Run Code Online (Sandbox Code Playgroud)

test() 是正则表达式实例的方法,因此正则表达式在函数调用之前.