JS Regex只允许数字,分号和连字符

时间:2012-07-31 14:01:05

标签: javascript regex

我正在构建一个应该只接受以下格式的字符串的应用程序:

  1. 12345(只有一个数字)
  2. 12345; 23456(两个或多个数字以;分隔;)
  3. 12345-12367(由 - 分隔的数字范围)
  4. java脚本正则表达式应该只允许以上格式&不应接受任何其他格式或符号。任何人都可以为此提出正则表达式吗?

4 个答案:

答案 0 :(得分:1)

这是您需要的RegExp:/^\d+((;\d+)*|-\d+)?$/

(;\d+)*将检查由“;”

分隔的多个数字

-\d+会检查范围

答案 1 :(得分:1)

尝试

^[0-9]+([;-][0-9]+)?$

那应该有用

[0-9]+匹配1位或更多位数 [; - ]匹配;-

(...)?是可选匹配

^锚定开头,$锚定字符串

的结尾

答案 2 :(得分:0)

假设您要查找的数字部分每次都是5位数,则以下内容应符合您的要求。

[0-9]{5}((;|-)[0-9]{5}){0,1}

如果您需要不同的长度,您可以使用另一个固定长度或范围(例如{3,5})更新{5},以获得3到5位数的字符串。如果您希望能够使用列出的拼写器捕获两个以上的数字,则可以使用

[0-9]{5}((;|-)[0-9]{5})*

答案 3 :(得分:0)

<强> ^ [0-9 - ;] {0,50} $

0-9 只接受数字

- ; 仅允许 - 和;

{0,50}只允许50个字符