我希望将一个单词与5到15个字母数字字符匹配,我也可以包含_和 - 字符。我正在使用JQuery来获取输入的值,我在CoffeeScript中编程:
username = $('#register input[name="user"]').val()
if ( ! username.match('/^([\w_\-]{5,15})$/'))
alert(username)
用JS编译的是:
username = $('#register input[name="user"]').val();
if (!username.match('/^([\w_\-]{5,15})$/')) {
return alert(username);
}
我收到带有“dsdsfsdsf”等字符串的警报,它应返回true,实际上每个字符串在尝试匹配时都返回false。我做错了什么?
答案 0 :(得分:3)
更改
if ( ! username.match('/^([\w_\-]{5,15})$/'))
到
if ( ! username.match(/^([\w_\-]{5,15})$/))
正则表达式文字不能介于引号之间。
由于您只想测试字符串,最好使用速度更快的test并且您不需要捕获组:
if (!/^[\w_\-]{5,15}$/.test(username))