Javascript仅输入数字正则表达式
Javascript Input Numbers Only Regular Expressions
我有一个RegEx验证,它只验证字段为数字。然而,只有当字符串的长度超过10位时,验证才会返回true。但如果小于10,比如说5,它将返回false。
这是我的代码:
function isNumeric(elem, helperMsg) {
var numericExpression = /^[0-9]+$/;
if (elem.value.match(numericExpression)) {
return true;
} else {
alert(helperMsg);
elem.focus();
return false;
}
}
function formValidator() {
var phone = document.getElementById('home');
if (isNumeric(phone, "Please enter a valid Australian House Phone Number")) {
console.log("Passed phone number");
if (isNumericPostal(postal, "Please enter a valid Postal Code of Australia it should be 4 digits only")) {
return true;
}
}
}
}
您还在isNumeric函数中混合验证逻辑和UI逻辑。这是不好的做法。/^'d{10,13}$/.test(yourValue)
将返回true/false
-在这种情况下应该更好。
function isNumeric(val) {
return /^'d{10,13}$/.test(val);
}
function formValidator() {
var phone = document.getElementById('home');
if (!isNumeric(phone.value)) {
alert("Please enter a valid Australian House Phone Number");
phone.focus();
return false;
}
// do your other logic in similar manner
return true;
}
这就是您所需要的:
/^[0-9]{0,13}$/
这将验证输入字符串的长度是否在0到13位之间。所以,即使是9、10位数,它也会通过
如果您也有一些最小数字长度,那么相应地更改{0,13}
。
在两者之间,http://www.regexr.com/是创建regex并测试它们的好站点。
使用此正则表达式^('d){9,13}$
而不是
相关文章:
- 正则表达式与数字中的第二个点匹配
- 正好包含2个大写字母和3个数字的正则表达式
- 键按下上的正则表达式 仅限制数字
- 使用正则表达式匹配长度为六个字符的字母数字字符串
- 为什么这个正则表达式不't匹配最后一个字母数字字符
- 正则表达式(JavaScript),用于创建数字必须大于x的数据验证
- 用于删除紧跟在非数字后面的零的正则表达式
- XXXXXX的正则表达式.XX格式的数字
- javascript正则表达式,用于匹配带数字和不带数字的字符串
- Javascript中的正则表达式,用于只有数字的字符串,并且不应在除数字以外的任何位置包含任何字符
- JavaScript正则表达式(带_-的字母数字字符)
- 用于数字输入的正则表达式
- 用Javascript正则表达式过滤十六进制数字
- 我应该使用什么正则表达式来验证数字模式
- 用于获取两个方括号之间的数字的正则表达式
- 正则表达式删除最后一个数字之后的字符串
- Javascript 正则表达式在特定单词或数字之后拆分
- 正则表达式 jquery 将数字替换为链接
- 正则表达式允许字母数字和空格,但不允许连续两个空格
- 正则表达式,字符串末尾必须包含数字