Javascript Regex允许单词字符、括号、空格和连字符
我试图用javascript中的正则表达式验证字符串。字符串可以有:Javascript Regex允许单词字符、括号、空格和连字符,javascript,regex,Javascript,Regex,我试图用javascript中的正则表达式验证字符串。字符串可以有: 文字字符 括号 空间 连字符(-) 3至50长度 以下是我的尝试: function validate(value, regex) { return value.toString().match(regex); } validate(someString, '^[\w\s/-/(/)]{3,50}$'); 像这样编写验证器 function validate(value, re) { return re.t
- 文字字符
- 括号
- 空间
- 连字符(-)
- 3至50长度
function validate(value, regex) {
return value.toString().match(regex);
}
validate(someString, '^[\w\s/-/(/)]{3,50}$');
像这样编写验证器
function validate(value, re) {
return re.test(value.toString());
}
使用这个正则表达式
/^[\w() -]{3,50}$/
一些测试
// spaces
validate("hello world yay spaces", /^[\w() -]{3,50}$/);
true
// too short
validate("ab", /^[\w() -]{3,50}$/);
false
// too long
validate("this is just too long we need it to be shorter than this, ok?", /^[\w() -]{3,50}$/);
false
// invalid characters
validate("you're not allowed to use crazy $ymbols", /^[\w() -]{3,50}$/);
false
// parentheses are ok
validate("(but you can use parentheses)", /^[\w() -]{3,50}$/);
true
// and hyphens too
validate("- and hyphens too", /^[\w() -]{3,50}$/);
true
正则表达式中的转义字符是
\
,而不是/
。由于您使用的是字符串,您必须对\
本身进行转义(或者让您的生活更轻松,使用regex文本)。是的,如果您使用正确的转义felix,您当前的regex工作正常。\w
定义的单词字符包括a-Za-z0-9
和下划线
,对吗?在方括号内你不需要转义-
,(
,)
等@anubhava:For(
和)
你是对的,但是是否转义-
取决于它在字符类中的位置。另外,RegExp.test()如果您只是想验证,
可能是比String.match()
更好的选择。在这个答案中,您在哪里看到str\match
?我在validate
方法中使用re#test
,问题是:返回值.toString().match(regex)代码>。