Javascript “;联合收割机&x201D;2带有逻辑或的正则表达式?
我有两种javascript模式:Javascript “;联合收割机&x201D;2带有逻辑或的正则表达式?,javascript,regex,logic,Javascript,Regex,Logic,我有两种javascript模式: /^[A-z0-9]{10}$/-长度正好为10个字母数字符号的字符串 及 /^\d+$/-长度至少为一的任意数字 如何生成10或任意数字的表达式或字符串 var模式=/^([A-z0-9]{10})|(\d+)$/ 因为某种原因,它不起作用。它至少会过去 pattern.test("123kjhkjhkj33f"); // true 对于A-z0-9字符串,它不是数字,长度也不是10。请注意,您的^([A-z0-9]{10})|(\d+)$模式匹配字
/^[A-z0-9]{10}$/
-长度正好为10个字母数字符号的字符串
及
/^\d+$/
-长度至少为一的任意数字
如何生成10或任意数字的表达式或字符串
var模式=/^([A-z0-9]{10})|(\d+)$/代码>
因为某种原因,它不起作用。它至少会过去
pattern.test("123kjhkjhkj33f"); // true
对于A-z0-9
字符串,它不是数字,长度也不是10。请注意,您的^([A-z0-9]{10})|(\d+)$
模式匹配字符串开头的A-z0-9
范围中的10个字符(^
仅修改([A-z0-9]{10})
部分(第一个备选分支),或(
)带(\d+)$
($
仅修改(\d+)
分支模式)的字符串末尾的一个或多个数字
还要注意,A-z
是一个打字错误
您需要按如下方式修复它:
var pattern = /^(?:[A-Za-z0-9]{10}|\d+)$/;
或使用i
修饰符:
var pattern = /^(?:[a-z0-9]{10}|\d+)$/i;
看
请注意,这里的分组很重要:(?:…|…)
使锚点适当地应用于每个锚点
详细信息
^
-字符串的开头
(?:
-非捕获替代组:
[A-Za-z0-9]{10}
-10个字母数字字符
|
-或
\d+
-1个或多个数字
)
-分组构造结束
$
-字符串结尾