【问题标题】:Check a combination of string and integer using regex使用正则表达式检查字符串和整数的组合
【发布时间】:2021-09-18 03:04:08
【问题描述】:

我现在正在尝试从文本框中获取输入,如果文本框值与正则表达式匹配,我想显示警报。

我想使用正则表达式检查"1702, Belgium""Belgium, 1702",但我得到了空值。

<script>
   $(document).ready(function(){
       var r =/+{1702}/;
       var v=$(".a").val();

       alert(v.match(r));
   });
</script>
<body>
   <input type="text" class="a" value="1702 Belgium"/>
</body>

【问题讨论】:

  • 为什么不使用直接字符串比较字符串“1702 Belgium”和“Belgium”.. 只需创建一个包含字符串的数组并使用包含方法来检查它
  • 如果你能解决这个问题请回答@Sarath
  • /+{1702}/ 不是有效的正则表达式。如果你想检查一个字符串是否包含1702,你可以使用正则表达式/1702/,甚至更简单——v.indexOf("1702") &gt;= 0
  • 您的正则表达式模式看起来非常错误。 + 是一个重复操作符,应该出现在一个模式之后。 {&lt;number&gt;} 用于计数重复,而不是用于您尝试使用它的内容。
  • 如果您正在寻找 "1702, Belgium""Belgium, 1702",那么它与您的 "1702 Belgium 值不匹配

标签: javascript jquery regex


【解决方案1】:

既然我们只有 2 个字符串需要比较,为什么不能用常量数组(“1702, Belgium”和“Belgium, 1702”)来比较,而不是使用正则表达式。

与正则表达式相比,上述方式更容易理解。

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
   $(document).ready(function(){
       var valuesToCompare = ["1702, Belgium", "Belgium, 1702"]
       
       var v = $(".a").val().trim();
       alert(valuesToCompare.includes(v));
       
       // we can also use indexof to check 
       // alert(valuesToCompare.indexOf(v) !== -1);
   });
</script>
<body>
   <input type="text" class="a" value="1702, Belgium"/>
</body>

【讨论】:

    【解决方案2】:

    考虑以下示例。

    $(function() {
      $("input.a").next("button").click(function(event) {
        var currentValue = $("input.a").val();
        var currentIndex = currentValue.indexOf("1702")
        if (currentIndex >= 0) {
          alert("1702 Found at " + currentIndex);
        }
      });
    });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <input type="text" class="a" value="1702 Belgium" /> <button>Check</button>

    .indexOf() 将为您提供字符串在字符串中存在的位置。它对数组做同样的事情。我已将代码移动到 Click 回调中,以便您可以测试其他字符串或在更改某些内容后对其进行检查。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多