2012-10-31 49 views
0
$.validator.addMethod('username', function (value) { 
    return [A-Za-z0-9\-\_]+.test(value); 
}, 'Username can only contain letters, numbers, underscores and dashes.'); 

我不擅长正则表达式或jQuery/JavaScript这使得我几乎不可能。jQuery验证方法(RegEx)

我只是想添加一个方法来验证用户名,以确保它只有数字,字母,下划线和破折号(没有空格,句点等),但我似乎无法做到正确。

任何帮助,将不胜感激。

+0

javascript正则表达式文字必须被'/.../'包围。 – jbabey

回答

2

这里有两个问题。其一,正则表达式需要分隔符。二,正则表达式不检查整个字符串是否由这些字母组成:

var regex = /^[\w-]+$/; 
return regex.test(value); 

我也缩短正则表达式位(字符类是一样的)。

+0

非常感谢! – Lanezeri

0

你想你的代码更改为:

return (value.match(/^[A-Za-z0-9-_]+$/));