gpt4 book ai didi

javascript - 负十进制数和正十进制数的正则表达式

转载 作者:行者123 更新时间:2023-12-01 02:05:21 24 4
gpt4 key购买 nike

我正在尝试使用javascript为React应用程序创建一个正则表达式,允许负数和正数十进制数,并且不允许输入任何字符。

我一直在寻找示例,阅读文档,但我不知道如何实现。

这是必须做的事情:

允许负数和正数小数,我发现了这个:

var re = new RegExp("^[+-]?[0-9]{0,900}(?:\.[0-9]{0,900})?$");

但我可以写一个字符并显示真实的并添加其他字符并显示错误。 console.log(re.test(value));

如果是十进制且以零开头,则显示零 (0.232),并且不允许这样做 (.232)

不允许写入字符,我见过这个/^\d*$/

最佳答案

查看有关 RegExp 的文档它指出,当使用构造函数时,正常的字符串转义规则(包含在字符串中时在特殊字符前加\)是必要的。

然后,您的正则表达式将匹配一个点,该点将匹配任何字符,例如 a 有效,因为前面的 [0-9]{0,900} 匹配 0 - 900 次.

你的正则表达式将变成:

var re = new RegExp("^[+-]?[0-9]{0,900}(?:\\.[0-9]{0,900})?$");

要匹配不以点开头的负数和正数十进制数,您可以使用:

^[+-]?[0-9]+(?:\.[0-9]+)?$

它将匹配字符串^的开头,可选的[+-]?,一个或多个数字[0-9]+ 后跟一个可选部分,该部分将匹配一个点和一个或多个数字 (?:\.[0-9]+)? ,然后是字符串的末尾 $.

var re = new RegExp("^-?[0-9]+(?:\\.[0-9]+)?$");

var re = new RegExp("^[+-]?[0-9]+(?:\\.[0-9]+)?$");
var strings = [
"1",
"1.2",
"0.232",
".232",
"-1.2",
"+1.2"

];

strings.forEach((s) => {
console.log(s + " ==> " + re.test(s));
});

关于javascript - 负十进制数和正十进制数的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50149698/

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