Javascript 正则表达式:仅数字或带'-';和'_';允许但不允许使用'-';和'-';

Javascript 正则表达式:仅数字或带'-';和'_';允许但不允许使用'-';和'-';,javascript,regex,pattern-matching,Javascript,Regex,Pattern Matching,我在模式匹配方面遇到了问题,我正在尝试生成一个模式,该模式只能接受数字或字母数字,允许使用“-”和“-”,但不能接受带有“-”和“-”的数字,并且只允许使用“-”和“”的数字 我尝试了下面的一个,它工作得很好,但完全工作 ^[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

我在模式匹配方面遇到了问题,我正在尝试生成一个模式,该模式只能接受数字或字母数字,允许使用“
-
”和“
-
”,但不能接受带有“
-
”和“
-
”的数字,并且只允许使用“
-
”和“
”的数字

我尝试了下面的一个,它工作得很好,但完全工作

^[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测试=[
"abcd",,
“as123”,
“作为”,
“as_12”,
“作为”,
“12as”,
“12_1as”,
'123_12',
'12-12',
'1234',
'--',
'__',
];
console.log(test.map)(函数(a){
返回a+':'+/^(?!\d+[-\ud+$)[a-z0-9]+[-\uz]?[a-z0-9]+$/i.test(a);

}));您正在寻找这样的正则表达式,它可以从负面展望中获益:

^(?!\d*(?:[-_]+\d*)*$)[\w-]+$

有可能排除那些只有“\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu?如果有几个,它们应该是相同的还是一个可以混合?它们可以在开头还是结尾?没有唯一的单曲也不能输入清楚我想…它只能接受任何一个数字,所以它不匹配
ab-cd\u ef
@revo:谢谢你的否决票。这不在OP的测试用例中。谢谢。不是OP的测试用例,而是OP的需求。