仅当字符串中包含两个括号时如何匹配?

时间:2015-12-02 04:56:23

标签: javascript regex

^[-+(]?\d+([,.]\d+)*([\)])*$

我使用上面的正则表达式来匹配字符串。一个案例我需要检查

测试字符串:

(111,1,1,1.3.3应该失败

(111,1,1,1.3.3)  should be passed
+1.1.1.1,1       should be passed
-1111            should be passed
-2,2,2,2.4.4     should be passed
2,3              should be passed

上面的字符串与正则表达式匹配,但我想检查字符串是否包含第一个括号,它应该检查是否与括号结束匹配。

2 个答案:

答案 0 :(得分:0)

试试这个正则表达式:

function validate(){
  var regex = /^[-+(]?\d+([,.]\d+)*([\)])+/gi;
  var value = document.getElementById("txtInput").value;
  console.log(value);
  document.getElementById("result").innerHTML = regex.test(value); 
}
<input type="text" id="txtInput" value="(111,1,1,1.3.3">
<p id="result"></p>
<button onclick="validate()">Validate</button>

答案 1 :(得分:0)

您可以在此处使用ored regex。

^(?:[+-]?\(\d+([,.]\d+)*\)|[+-]?\d+([,.]\d+)*)$

参见演示。

https://regex101.com/r/hE4jH0/19