私はEUの銀行口座のHTMLフォームに正規表現をバインドしようとしています。これまでのところ、私はそれをつなぎ合わせることができました:HTMLの正規表現のスペース
pattern="[A-Z]{2}[000000000-999999999]{9}
を例UK123456789
ために何かを通過させますが、私もそれは私が行くにはどうすればよいUK12 2345のために6789
を渡すようにしたいですそれらのプレースメントで正確にスペースを受け入れることについて
私はEUの銀行口座の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
か... 0-9
または9
または9
か... 9
の範囲の文字でなければなりません」と言う。)の適切な形式は次のとおりです。
pattern="[A-Z]{2}[0-9]{9}"
またはより正確に:
pattern="[A-Z]{2}\d{2}\s?\d{4}\s?\d{4}"
:
pattern="[A-Z]{2}\d{9}"
今、私たちは、より合理的な何かを持っていることを、我々はにそれを拡張することができます
これは、特定の場所でオプションの空白を許可します。
あなただけのスペースではなく、任意の空白文字許可したい場合は、あなたができる:
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