正则表达式JavaScript - 如何检查字符串是否都是字母,然后是所有数字

时间:2016-08-02 04:44:51

标签: javascript regex string numbers

这没关系:' AAAAAAA1222222' 这不可行:' 1AAAAA' 这不可行:' AA1AA'

只是想找一种方法来检查一个字符串是否是所有字母然后只是字母。

6 个答案:

答案 0 :(得分:1)

这很简单。

^[A-Za-z]*[0-9]*$

当然假设没有信件可以。

例如,上面的例子匹配

AAAAAAA
2222222

以及空字符串。

如果必须至少有一个字母且至少有一个数字,请将*替换为+

^[A-Za-z]+[0-9]+$

答案 1 :(得分:0)

使用前瞻。前瞻用于验证,我建议您浏览this

试试这个:^(?=[A-Za-z]*\d*$).+

DEMO

答案 2 :(得分:0)

text.match(/^[A-Z]*\d*$/i)

读取这个"字符串的开头,后跟任意数量的字母,后跟任意数字的数字,后跟字符串的结尾。"

请注意,这将与"""A""1"相匹配。如果您希望至少有一个字母和至少一个数字,请在两个位置使用+代替*

答案 3 :(得分:0)

试试这个正则表达式

  \b\D+\d+\b 

\ b是不允许数字在开头出现的字边界,以及在结尾数字之后出现的字母。

答案 4 :(得分:0)

我建议这样的事情:

text.match(/\b\D+\d+[^\D]\b/);

\ b是格雷斯建议的,这是一个好主意。另一个选择是使用开头和结尾锚点,如:

text.match(/^\D+\d+[^\D]$/);

答案 5 :(得分:0)

text.match(/^[a-zA-Z]+\d*$/);

测试:

AAAAAAA1222222    -    match
1AAAAA            -    no match
AA1AA             -    no match
AAAAAAA           -    match
2222222           -    no match   

如果您不想匹配所有信件至少一个数字,请更改\d的{​​{1}}的量词(1 - 无限次) )到+(0-infinity次)

有关正则表达式量词的更多信息:link