我试图将正则表达式绑定到我的HTML表单的欧盟银行帐户。到目前为止,我能拼凑出的是:HTML正则表达式空间
pattern="[A-Z]{2}[000000000-999999999]{9}
会让一些通这对例如UK123456789
但我也想让它传递了UK12 2345 6789
我该如何去关于在这些展示位置接受空间?
我试图将正则表达式绑定到我的HTML表单的欧盟银行帐户。到目前为止,我能拼凑出的是:HTML正则表达式空间
pattern="[A-Z]{2}[000000000-999999999]{9}
会让一些通这对例如UK123456789
但我也想让它传递了UK12 2345 6789
我该如何去关于在这些展示位置接受空间?
pattern="[A-Z]{2}[000000000-999999999]{9}"
这只意外地做你想要的。 ([000000000-999999999]
说:“这个角色应该是一个0
或0
或在0-9
范围内的0
或...字符或9
或9
或者......一个9
)的适当形式是:
pattern="[A-Z]{2}[0-9]{9}"
或者更准确地说:
pattern="[A-Z]{2}\d{9}"
现在我们有一些比较理性,我们可以扩展到:
pattern="[A-Z]{2}\d{2}\s?\d{4}\s?\d{4}"
它允许在特定位置的可选空白。
如果你想允许仅仅空格,而不是任何空白字符,你可以这样做:
pattern="[A-Z]{2}\d{2} ?\d{4} ?\d{4}"
这不工作? ''UK 123456789'.match(/ [A-Z] {2}?\ d {9}/g);'看起来更容易阅读,但我不知道那么正确。 –
@JaredFarrish该表达式肯定会匹配该字符串,但该字符串不是OP想要的表单。另外,'g'是不必要的,因为只有第一场比赛似乎需要。 – Ouroborus
只是想知道,什么样的形式是什么OP想要的? –
您可以允许使用\s?
的可选空白,尽管它会让您的正则表达式更长一些。下面的正则表达式将允许带或不带空格(DEMO)
\w{2}\d{2}\s?\d{4}\s?\d{4}
但要知道,一个欧洲IBAN比你已经张贴什么更长 - 虽然我不知道它是如何在英国。
如果你不在乎这些空间,只要有9个数字,你可以检查之前去掉所有的空格:
str = 'UK12 234 56789';
strToCheck = str.replace(/ /g, '');
validStr = strToCheck.match(/[a-zA-Z]{2}\d{9}/);
if (validStr) {
console.log('Valid');
}
我注意到OP只想验证特定位置的空间,在这种情况下,我的回答不正确,因为它会验证字符串中任何位置的空格。这就是说,在实践中,我不确定为什么它不值得验证意外位置的空间,只要有足够的字母和数字。 – sideroxylon
'[000000000-999999999] {9}'是'一样[0-9] {9}' – Oriol