我需要一个正则表达式来测试一个字符串。 该字符串只能包含英文字母,数字,连字符和下划线。
以前我有一个测试字符串是否只包含正数(包括零);我用过:
if(!/^\d+$/.test(number)) {
alert('..bla');
} else {
return true;
};
所以我想要一个类似的。我读过:
Regular expressions and Chinese;
和Regex Letters, Numbers, Dashes, and Underscores;
但这两个似乎并没有解决我的问题。
!/[a-zA-Z0-9\-\_]+$/.test('_-bla') // return false
!/[a-zA-Z0-9\-\_]+$/.test('_-bl我a') // return false
!/[a-zA-Z0-9\-\_]+$/.test('_-bl我') // return true
!/[a-zA-Z0-9\-\_]+/.test('_-bl我') // return false
!/[a-zA-Z0-9\-\_]+/.test('_-bl我a') // return false
提前致谢。 :)
答案 0 :(得分:3)
使用^[-\w]+$
。 \w
匹配数字,字母,_
。
/^[-\w]+$/.test('_-bla') // true
/^[-\w]+$/.test('_-bl我a') // false
/^[-\w]+$/.test('_-bl我') // false
/^[-\w]+$/.test('_-bl我') // false
/^[-\w]+$/.test('_-bl我a') // false
答案 1 :(得分:2)
我假设您正在寻找此输出。添加插入符号(^
)表示字符串的开头,($
)表示字符串结束到正则表达式。
/^[a-zA-Z0-9_-]+$/.test('_-bla'); // True
/^[a-zA-Z0-9_-]+$/.test('_-bl我a'); // False
/^[a-zA-Z0-9_-]+$/.test('_-bl我'); // False
/^[a-zA-Z0-9_-]+$/.test('_-bl我'); // False
/^[a-zA-Z0-9_-]+$/.test('_-bl我a'); // False
您可以使用\w
来匹配单词字符(a-z
,A-Z
,0-9
,_
)
/^[\w-]+$/