正则表达式:要么只有数字或字母数字带' - '和'_'允许但不带数字' - '和' - '
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式:要么只有数字或字母数字带' - '和'_'允许但不带数字' - '和' - '相关的知识,希望对你有一定的参考价值。
我遇到麻烦模式匹配,我试图生成模式,可以接受只有数字或字母数字与'-
'和'_
'允许但不是数字与'-
'和'-
'允许,只有'-
'和'_
'不应该被允许。
我试过下面的一个有点工作但完全正常工作。
^[a-zA-Z0-9][a-zA-Z0-9-_]+$
我试图匹配以下情况:
abcd = OK
as123 = Ok
as_as = Ok
as_12 = Ok
as-as = ok
12as = Ok
12_1as = Ok
123_12 = not Ok
12-12 = not Ok
1234 = ok
-- = not ok
__ = not ok
提前致谢
答案
这样做的工作:
var test = [
'abcd',
'as123',
'as_as',
'as_12',
'as-as',
'12as',
'12_1as',
'123_12',
'12-12',
'1234',
'--',
'__',
];
console.log(test.map(function (a) {
return a+' : '+/^(?!d+[-_]d+$)[a-z0-9]+[-_]?[a-z0-9]+$/i.test(a);
}));
另一答案
您正在寻找这样的正则表达式,它可以从负面的前瞻中受益:
^(?!d*(?:[-_]+d*)*$)[w-]+$
以上是关于正则表达式:要么只有数字或字母数字带' - '和'_'允许但不带数字' - '和' - '的主要内容,如果未能解决你的问题,请参考以下文章