我需要检查一些输入是否严格如下:
PEOPLE-123456
或PERSON-12345376
(可以是数字的任意组合)
-
之后的数字无关紧要。它可以是从0到N的数字。
我想出了以下表达式:
/(PEOPLE-)|(PERSON-)?=^[0-9]+$/
问题是,即使-
之后的字符不是数字,这也会有效。
true
true
true
false
我做错了什么?我没有看到表达本身存在任何问题,也许我很想看到它。
答案 0 :(得分:1)
试试这个:
^(PERSON|PEOPLE)-[0-9]{1,}$
这样可以确保开始的时间恰好为PERSON
或PEOPLE
,然后是-
,最后是至少一个数字。
答案 1 :(得分:0)
您需要将分组括号括在两个选项中:
/^(PEOPLE|PERSON)-\d+$/
并且您不应该使用?
将其标记为可选。我不知道为什么你把=
和^
放在那个部分之后。
如果您想在数字中允许小数点,请使用[0-9.]
代替\d
。
答案 2 :(得分:0)
如果数字是可选的,这应该有用。否则至少需要1个数字替换* with +。
/^(PEOPLE|PERSON)-\d*$/