在整个字符串匹配中使用jQuery RegExp时匹配错误

时间:2016-02-09 14:45:08

标签: jquery regex

在我看来,jQuery RegExp无法处理整个字符串中的匹配。

这是测试字符串的正则表达式模式和函数:

var billMonthYearRg = new RegExp("^\D*([0-9]+)\s?(-|\/)\s?([0-9]{4})\D*$", "gi");
$('#Description').on('change', function () {
  var matches = billMonthYearRg.exec($('#Description').val());
  if (matches != null && matches.length > 3) {
    $('#BillMonth').val(matches[1]);
    $('#BillYear').val(matches[3]);
  }
});

我尝试将月份与文本进行匹配,但仅当它出现一次并且没有更多数值时,例如。 '非数字文本11-2222非数字文本'。

模式是可以的,当我们在乞讨时移动^和在模式结束时移动$,但是如果mm-yyyy发生更多那么我们得到匹配。

作为'Description'的输入,我们使用:

    <textarea id="Description" name=""></textarea>
    <input id="BillMonth" type="number" name="BillMonth" />
    <input id="BillYear" type="number"  name="BillYear"/>

我们在https://regex101.com/上测试了regext并且工作正常,但在网站上却无法正常工作。

我们使用jQuery JavaScript Library v2.1.4

0 个答案:

没有答案