【问题标题】:How can I make this RegEx into JavaScript RegExp object?如何将此 RegEx 转换为 JavaScript RegExp 对象?
【发布时间】:2017-05-06 19:49:45
【问题描述】:

我有这个正则表达式,它允许人们在小数点前输入最多 7 位数字,在小数点后输入最多 2 位数字。

我认为将它们放入变量中会更整洁。 我已经搜索过说使用RegExp 对象的人,但我仍然对它是如何完成的感到困惑。

这就是我的 RegEx 所拥有的。

/^(\d{1,7})(\.\d{2})?$/

【问题讨论】:

  • 您可以考虑使用<input type="text" pattern="\d{1,7}(\.\d{2})?" />

标签: javascript regex variables object


【解决方案1】:

您可以使用以下代码:

var max1 = 7;
var max2 = 2;
var rx = new RegExp("^(\\d{1," + max1 + "})(\\.\\d{" + max2 + "})?$");
console.log(rx.test("1234567.12"));
console.log(rx.test("1234567.123"));
console.log(rx.test("12345678.12"));

另外,请查看以下帖子:

【讨论】:

  • 这很好......从来没有想过将最大数字提取到变量中。又学到了一些新东西... thx thx
【解决方案2】:

你可以使用:

var patt = new RegExp(/^(\d{1,7})(\.\d{2})?$/);

如何测试:

console.log(patt.test('1234567ab')) : false

console.log(patt.test('1234567.12')) : true

【讨论】:

  • 好的,我明白你的意思了,只需将限制传递给变量并将模式附加到 RegExp 中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-17
  • 2018-02-27
  • 2021-01-28
  • 2018-10-29
相关资源
最近更新 更多