RegEx的最大长度与点和替换函数在JavaScript

RegEx for maximum length with dot and replace function in JavaScript

本文关键字:替换 函数 JavaScript RegEx      更新时间:2023-09-26

如何使用replace函数限制字符串的长度

我需要只允许这样的字符串:11.11,99.99,100.00

点前1-3个数字,点后1个数字,点后2个数字。

我只有这样的东西:

value = value.replace(/[^'d.]/, "");

使用交替|算子测试.的两边:

var str="11.11, 99.99, 100.00, 1333.05, 44.999"
console.log(str.replace(/([, ]*'d{4,}'.'d*|'d*'.'d{3,})[, ]*/g, ""));

解释:

  • [, ]*:任意数目的,或空格
  • 'd{4,}'.'d*: 4位或4位以上数字后接点和任意数字(点前匹配大于4位的数字)
  • 'd*'.'d{3,}:任意数字后接点和3位或3位以上数字(点后匹配大于3位的数字)
  • 如果发现最后两个模式中的一个后跟可选的,或空格,则将其替换为空字符串""