我正试图编写一个正则表达式来验证九个数字及其后只有一个大写字母,例如:
123456789A
我使用的正则表达式对我不起作用:
/^[0-9]{9}.[A-Z]{1}$/
你能帮我算出一个工作表达式吗?
这是因为你的两件事之间有一个点。另外,你需要匹配字符串的开始和结束吗?如果没有,您可以删除它(^和$(。
提示是您使用http://www.regexr.com/这样您就可以准确地看到每个令牌的作用。
所以,不管怎样,只要去掉这个点,它看起来像这样:
/^[0-9]{9}[A-Z]{1}$/
然而,这并不是最理想的解决方案。首先,您可以使用"数字标志",它是\d并将{9}添加到其中。然后,您还可以删除{1},因为这是已经假设的。最终:
/^d{9}[A-Z]$/
试试这个
^[0-9]{9}[A-Z]$
.
是不必要的,它不是一个串联,但它代表"除换行符之外的任何字母"。
{1}
,为了简单起见,仅仅[A-Z]
就足够了。
在这里,您也可以使用d
而不是[0-9]
,但我更喜欢[0-9]
,因为它更明确。
请参阅:演示
d{9}[A-Z]
匹配9位数字和1个大写字符
您已接近解决方案!您根本不需要点.
运算符:
/^d{9}[A-Z]$/
上面的表达式将匹配任何包含九个数字和末尾一个大写字母的字符串。如果要使其不区分大小写并匹配任何字母,可以添加修饰符i
(不区分大小字母(。我还使用了d
运算符,它匹配任何数字,而不是[0-9]
,它更短,更容易阅读。
下面是上述RegExp的工作示例。