在正则表达式中,字符开头不匹配

时间:2014-10-01 07:33:25

标签: javascript regex

我有一个像这样的正则表达式:

/^[0-9]*.*K/

我有一个要测试的字符串:

L1/50K

并且匹配。但是它应该匹配一个以数字开头的字符串?这个正则表达式的解释是什么?

3 个答案:

答案 0 :(得分:1)

' *'表示0或更多。你必须使用+,这意味着一个或多个

/^[0-9]+.*K/

答案 1 :(得分:0)

*之后删除[0-9]*重复前一个(令牌或字符)零次或多次,因此如果第一次没有数字,^[0-9]*.*K将匹配该字符串。

^\d\d*.*K$

OR

^\d+.*K$

OR

^\d{1,}.*K$

首先使用\d,使其与以数字开头的字符串匹配。注意\d等于[0-9]$表示该行的结尾,请在K之后使用此锚点,以便它匹配以数字开头并以K结尾的行

答案 2 :(得分:0)

a *匹配前面标记的0或更多。 如果你想强迫它以数字开头,你应该使用+,如:

/^[0-9]+.*K/

有关正则表达式的优秀文档,以及构建它们: http://www.regexr.com/