验证javascript正则表达式中的表达式

时间:2014-11-07 20:47:13

标签: javascript regex

需要javascript正则表达式来验证以下表达式:

1 + 2应该返回true

1 + 2 + 4应该返回true

1 + 2 + 3 + 4应该返回true

1应该返回true

+2应该返回false

2 + 2 +应该返回false

在上面的示例中,我只使用了“+”,但我将运算符设为“+”,“ - ”,“/”,“*”。

感谢您的帮助

4 个答案:

答案 0 :(得分:5)

使用此模式来涵盖您发布的内容

^((?:\d+[\/*+-](?=\d+))*\d+)$

Demo

修改:根据下面的评论以允许小数点,将每个\d+替换为\d+(?:\.\d+)?

答案 1 :(得分:2)

如果字符串以数字开头和结尾,你似乎需要匹配,所以简单地说:

/^\d.*\d$/

就足够了,但如果你想要检查特定的运算符,你可以做类似的事情

/^\d+([-+/*]\d+)+$/

答案 2 :(得分:2)

^\d+(?:[+-/*]\d+)*$

试试这个。见演示。

http://regex101.com/r/qM8bS5/1

答案 3 :(得分:1)

我试着评论,但我还不能。由于这是Javascript,请使用alpha bravo的答案,不要忘记正则表达式的开头/结尾字符,即

  

/ ^((:\ d +(:\ \ d +)[\ / * + - ](= \ d +(:??????\ \ d +)))* \ d +(:\ \ d +)?)$ /

以下代码来自RegexBuddy for JavaScript:

  

var myregexp = / ^((?:\ d +(?:\。\ d +)?[\ / * + - ](?= \ d +(?:\。\ d +)?))* \ d +( ?。?:\ \ d +))$ /;
  var match = myregexp.exec(subject);
  if(match!= null){
      result = match [0];
  其他{
      结果="";
  }