gpt4 book ai didi

javascript - 使用正则表达式验证 Javascript 上的货币不起作用

转载 作者:行者123 更新时间:2023-11-28 00:40:20 26 4
gpt4 key购买 nike

我需要货币类型的正则表达式。要求:

1. First char can be a '$'. It can appear either 0 or 1 times.
2. Then a digit can appear multiple times.
3. Then a decimal point can appear either 0 or 1 time.
4. After this, a digit can appear 0 or more times.

我编写了以下正则表达式:

\$?\d+\.?\d*

我需要在 JS 上测试一下。这就是我在 JS 上测试的方法;

var str = "$cng";
var patt = new RegExp('[\$?\d+\.?\d*]');
var res = patt.test(str);
console.log(res);

上面的字符串 $cng 返回 true。我无法得到它。我在这里错过了什么吗?任何人都可以帮忙吗?提前致谢。

最佳答案

  1. 将所有反斜杠传递给以双引号作为分隔符的 RegExp 构造函数时,必须再次转义一次。

  2. 我还建议您删除模式周围的方括号。

所以改变你的模式如下,

var patt = new RegExp("^\\$?\\d+\\.?\\d*$");

或者

var patt = new RegExp("^\\$?\\d+(?:\\.\\d+)?$");

示例:

> var str = "$123.12";
undefined
> var patt = new RegExp("^\\$?\\d+(?:\\.\\d+)?$");
undefined
> patt.test(str);
true
> var patt = new RegExp("^\\$?\\d+(?:\\.\\d+)?$");
undefined
> patt.test('$123.12$');
false

关于javascript - 使用正则表达式验证 Javascript 上的货币不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28021865/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com