我需要与JS匹配:
例如:
23
4545a
1B
554 cs
34-S
正则表达式不是我的强项,所以我得到的就是这个......
^[0-9A-Za-z ]+$
更新:
^(0-9A-Za-z )+$
答案 0 :(得分:2)
可能有点冗长,但是我想到了所需的部分
[0-9]+[\s-]{0,1}[a-zA-Z]{0,2}
等同于:
此正则表达式与您的每个测试方案相匹配。
答案 1 :(得分:2)
Aaaaand,我的是其他答案的混合体。 :)
/^\d+[ -]?[a-z]{0,2}$/i
秒> \d+
= 1位或更多位数[ -]?
=可选空格字符(注意:仅限空格,不是“空格”)或破折号[a-z]{0,2}
= 1个或2个字母字符(注意:目前只有小写,但请继续阅读......)i
使其不区分大小写,因此[a-z]
将匹配大写或小写的alphas 编辑 - 好的,所以我在所有答案中都发现错误。 LOL因为alpha模式最后允许0个字符,并且空格和破折号是可选的,所以我们迄今为止提供的正则表达式对以下测试数据产生误报:123-
和456 <--- with a space at the end
第二个可以通过在值上使用$.trim()
来解决(如果允许您尝试测试的话),但第一个不能。
所以。 。 。这使我们有了一个新的正则表达式来处理这些情况:
/^\d+([ -]?[a-z]{1,2})?$/i
\d+
= 1位或更多位数[ -]?
=可选空格字符(注意:仅限空格,不是“空格”)或破折号[a-z]{1,2}
=必须有1或2个字母字符(注意:目前只有小写字母,但请继续阅读......)( . . . )?
强制空格或短划线仅在数字 IF 之后有效,然后是1或2个字母。 。 。但是,整个组都是可选的,作为一个整体。i
使其不区分大小写,因此[a-z]
将匹配大写或小写字母他们更新了所有示例中的正则表达式匹配,并且对我提到的两个无效案例也失败了。
注意:如果数字后跟一个空格应该被认为是有效的,那么在测试之前修剪该值也会允许该情况通过。
答案 2 :(得分:1)
以下会这样做吗?
^[0-9]+( |-)?[A-Za-z]{0,2}$
答案 3 :(得分:1)
(^[0-9]+( |-){0,1}[a-zA-Z]{0,2})
您可以在http://gskinner.com/RegExr/中测试它,这是一个非常有用的测试和理解RegEx的工具