javascript正则表达式以验证输入

时间:2018-07-31 06:12:52

标签: javascript regex

我必须使用javascript正则表达式来验证输入。 我的有效输入应为 100 * 100 或同一输入字段中的多个输入,如 50 * 30,90 * 40(用逗号分隔)

输入内容不应类似于** 0 * 0或0或50或90 * 90,0 * 0或50 * 0或0 * 50 **

这些是图像的尺寸。

1 个答案:

答案 0 :(得分:1)

您可以尝试^(?!0\*0)(?:\d+\*\d+,?)+$

  • ^$确保整个字符串匹配。
  • (?!0\*0)是否定性的检查字符串是否为0*0
  • (?:)表示内容是非捕获组
  • \d+匹配一个或多个数字(0–9)
  • \*与文字*匹配
  • \d+匹配一个或多个数字(0–9)
  • ,?可选地匹配文字逗号
  • +匹配一个或多个前面的模式((?:\d+\*\d+,?)

已知错误:50*520*4个匹配项。

编辑:找到了该错误的解决方法。

^(?:(?!0\*0)\d+\*\d+,)*(?:(?!0\*0)\d+\*\d+)$

编辑:您已编辑问题,以明确表明您不希望匹配50*5,0*0。这可以通过将否定前瞻项放在重复匹配项中作为^(?:(?!0\*0)\d+\*\d+,?)+$

来实现

编辑:您提到不想匹配0*[anything][anything]*0。尝试^(?:(?!0\*)\d+\*(?!0,)\d+,)*(?:(?!0\*)\d+\*(?!0$)\d+)$

使用变通方法on this RegExr demo来使用最新的正则表达式。