我的网络应用程序中有一个字段,用户需要输入一个或多个以一个或多个句点分隔的数字。
以下是用户可以输入的典型示例:
589327498321.43243214.32421423。
我编写了以下JavaScript代码来测试值:
var uid = $(this).val();
var uidRegex = /(^\d|\.$)+/;
var isValid = uidRegex.test(uid);
我收到了错误的结果。似乎这段代码告诉我,如果用户的条目以数字或句点开始,则该条目有效。如何解决这个问题,以便整个条目必须完全由数字和句点组成?
答案 0 :(得分:3)
听起来你正在寻找的模式是
数字后跟任意数字点+数字序列
若然,请尝试以下/^(\d)+(\d|\.\d)+$/
修改强>
OP在评论中指出连续点是合法的。这是更新的正则表达式,以及/^(\d)+(\d|\.)+$/
答案 1 :(得分:0)
/^(\d|\.)+$/
应该这样做=]
答案 2 :(得分:0)
var uidRegex = /[^\d.]/;
var isValid = ! uidRegex.test(uid);
如果您想禁止字符串开头的句号,请使用:
var uidRegex = /(?:[^\d.]|^\.)/;
var isValid = ! uidRegex.test(uid);
答案 3 :(得分:0)
您也可以考虑:
var uidRegex = /^\d+(\d|\.)+$/;
答案 4 :(得分:0)
这种模式怎么样:/^\d+(\.+\d+)*$/
答案 5 :(得分:0)
/^\d[\d\.]*$/
^ ^--any number of digits or periods
|-start with a digit
答案 6 :(得分:0)
如果您的字段是必填字段(并且必须包含至少2个字符),则可以执行此操作:
/^(\d)+(\d|\.)*(\d)+$/