[英]can not set limit on regex
我有一個名為vatValidate
函數,用於驗證用戶輸入的增值稅格式。 目前,它作為默認情況對奧地利和意大利這兩個國家/地區進行驗證。 對於每個,我使用正則表達式為相關的增值稅格式指定了預期的用戶輸入序列。
function vatValidate() { let vatFormat; let countryCode = document.getElementById('countries').value; switch (countryCode) { case 'Austria': countryCode = 'AT'; vatFormat = /[U]{1}[0-9]{8}/; break; default: countryCode = 'IT'; vatFormat = /[0-9]{11}/; } let vatNumber = document.getElementById('pivaid').value; let vat = countryCode + vatNumber; if (vatFormat.test(vat)) { console.log('Correct'); } else { console.log('Error'); } } vatValidate()
如果用戶輸入與預定義序列匹配,則該函數記錄true
else false
。 它工作正常,但問題是,我定義的正則表達式代碼並沒有強制執行序列的長度。 當我研究這樣做時,例如對於奧地利,我必須使用^
和$
定義正則表達式,結果為: /^[U]{1}[0-9]{8}$/
顯然這應該可以正常工作,因為我在 regex101.com 中驗證了它,可以在下面看到:
現在的問題是,一旦我在代碼中添加^
和$
,它就不再起作用,它只會記錄一個錯誤! 我的開發環境是 Laravel,這段代碼在刀片內的腳本標簽中執行。
使用這個正則表達式表達式解決了奧地利的問題:
/^[A]{1}[T]{1}[U]{1}[0-9]{8}$/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.