[英]dutch Bank account validation rule
谁能告诉我如何为荷兰银行账户制定验证规则?
到目前为止,我只能在 web 上找到这个:
regex = /[0-9]{2}[\\s]{1}[0-9]{2}[\\s]{1}[0-9]{2}[\\s]{1}[0-9]{3}/;
这是我的 JavaScript:
function dutchBankAccount(input) {
var regex = /[0-9]{2}[\\s]{1}[0-9]{2}[\\s]{1}[0-9]{2}[\\s]{1}[0-9]{3}/;
if(input.value.toString().match(regex) && !(input.value == "")) {
return true;
} else {
input.click();
input.style.border = '2px solid #F20056';
return false;
}
}
这是我的 HTML 代码:
<li><input type="text" id="anum" placeholder="Account Number" autocomplete="off" onkeypress="return isNumberKey(event)" onBlur="isValidAnum()" onFocus="emptyAnum('anum')"/></li>
后来当我输入一个荷兰银行账户时,我得到了我不应该得到的错误。 所以如果你知道如何解决这个问题,请帮助我。
正则表达式语法不正确。 尝试更多类似的东西:
var regex = /[0-9]{2}\s[0-9]{2}\s[0-9]{2}\s[0-9]{3}/;
匹配字符串,如
32 01 28 192
两个数字后跟一个空格三次,然后是三个数字。 我不知道这是否是所有荷兰银行账户的样子,尽管这似乎是一个类似的小名称空间。
(我突然想到/(?:\d{2}\s){3}\d{3}/
应该匹配相同的字符串,而且要短一些。)
编辑——详细地说,原始代码中的正则表达式存在一些问题:
真正的问题是额外的反斜杠。 另外,说到不必要的冗余,没有必要对输入元素“value”属性的值调用“.toString()”,也没有必要确保该值不是空字符串,如果它匹配图案。 在这种情况下,空字符串无法匹配模式,因此不需要进行测试。 最后(承诺),如果您只是针对字符串测试正则表达式,则 RegExp 原型上的“.test()”方法效率更高:
if (regex.test(input.value)) { // matched
// ...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.