我試圖將正則表達式綁定到我的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