我正在尝试使用 javascript for react 应用程序创建一个正则表达式,该表达式允许负十进制数和正十进制数,并且不允许输入任何字符。
我一直在寻找示例,阅读文档,但我不知道如何制作。
以下是必须做的事情:
允许负十进制数和正十进制数,我发现这个:
var re = new RegExp("^[+-]?[0-9]{0,900}(?:.[0-9]{0,900})?$");
但我可以写一个角色,给我看真,加其他字,给我看假。console.log(re.test(value));
if 是十进制并以零开头,显示零 (0.232( 并且不允许这样做 (.232(
不允许写字符,我已经看到了这个/^d*$/
查看有关 RegExp 的文档,它指出在使用构造函数时,正常的字符串转义规则(在字符串中包含 \ 时在特殊字符之前(是必需的。
然后,您的正则表达式将匹配一个点,该点将匹配任何字符,例如a
有效,因为前面的[0-9]{0,900}
匹配零 - 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));
});
我使用这个:
^-?[0-9]d*(.d+)?$
- 只有数字
- 正面和负面
- 不允许.232