【问题标题】:How to match only if the both brackets are there in the string?仅当字符串中的两个括号都存在时如何匹配?
【发布时间】:2015-12-02 04:56:22
【问题描述】:
^[-+(]?\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

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

【问题讨论】:

  • 你不能用 JavaScript 表达它(用一个正则表达式)(好吧,我想你可以,但只能用重复)。
  • 在继续新问题之前,您需要接受旧问题的答案
  • @vks 而不是接受,我点击了投票..现在接受了答案..谢谢

标签: javascript regex


【解决方案1】:

您可以在此处使用ored 正则表达式。

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

查看演示。

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

【讨论】:

  • 来自上述链接的答案:/^(?:\(\d+([,.]\d+)*\)|[+-]?\d+([,.]\d+)*)$/gm
【解决方案2】:

试试这个正则表达式:

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>

【讨论】:

    猜你喜欢
    • 2014-11-17
    • 1970-01-01
    • 2013-02-11
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 2015-07-22
    • 1970-01-01
    • 2020-12-28
    相关资源
    最近更新 更多