用于验证十进制数的正则表达式
Regular expression for validating decimal numbers
函数验证十进制(数字,最大数字){ eval("var stringvar=/^[-+]?([0-9]*''.[0-9]{0,"+maxDigits+"})|([0-9]+)$/"); 返回 stringvar.test(number);}
我写了上面的函数来验证十进制数。变量"maxDigits"用于指定小数部分的位数,并将"数字"指定为要验证的值。但是当我尝试使用一个数值后跟一个字符(例如:24y)时,它返回了"true"。谁能帮我找出我的错误。
在不进入正则表达式的情况下,我认为您的代码中的问题是您应该两次转义特殊字符。由于您将所有内容都放在一个字符串中,因此字符串分析会转义单个反斜杠。
我认为这应该有效:
eval("var stringvar=/^[-+]?([0-9]*''.[0-9]{0,"+maxDigits+"})|([0-9]+)$/");
此正则表达式将验证小数位数为最大值的数字: ^[-+]?[0-9]*.[0-9]{10}$
. 这会将其验证为小数点后 10 位。
将其实现到 JavaScript 中如下所示: eval("var stringvar=^[-+]?[0-9]*.[0-9]{" + maxDigits + "}$");
,或者大约。
我刚刚尝试了这个,它对我有用:^[+-]?[0-9]*('.[0-9]{0,5})?$
.
就我而言,我做了一个小的修改,您似乎匹配了一个十进制数或整数。就我而言,我修改了正则表达式以取一个带有可选小数部分的整数。
照原样,正则表达式将匹配以下值:.222
、23.22222
但不匹配4d.22222
、33.333333
等。
var n1 = "4.33254";
var n2 = "4d.55";
eval("var stringvar=/^[+-]?[0-9]*(''.[0-9]{0,5})?$/");
alert(stringvar.test(n1));
alert(stringvar.test(n2));
产量:分别为true
和false
。
相关文章:
- 用于验证十进制数的正则表达式
- 使用jquery验证器插件为十进制数设置正则表达式
- 用于在字符串中查找十进制数的正则表达式
- jQuery 验证器正则表达式使用数组或变量
- 使用正则表达式检查数组条目
- 使用正则表达式删除数组项
- 十进制数的正则表达式
- 正则表达式正负十进制数,逗号分隔
- javascript正则表达式在数组上匹配以查找多个项
- 使用正则表达式从数组中删除不需要的html
- JavaScript正则表达式,用于将可选的十进制数与可选的度量标识符相匹配
- 删除锚标记并使用正则表达式以数组形式获取内部文本
- 十进制数包含+、-符号的正则表达式
- 如何在Javascript中使用正则表达式验证数字字段
- 带可选小数点的十进制数的正则表达式
- 带循环的Javascript正则表达式模式数组
- 用于验证具有固定范围的十进制数的正则表达式
- 使用正则表达式替换数组中的匹配元素:无效字符
- JavaScript正则表达式十进制
- 如何在javascript中创建动态正则表达式来验证十进制数