[英]Is this Regular expression for Javascript is correct
Iam尋找用戶輸入3個字符,並且應為字母,而不是數字和特殊字符
if(txt1.match('[A-Za-z]{3}')){}
以上條件是否正確?
您可以使用i
regex標志使匹配的大小寫不區分大小寫並簡化正則表達式。 另外,如果沒有^
和$
,則包含三個連續字母的任何字符串都將匹配。 您需要添加^
和$
以分別匹配字符串的開頭和結尾。 最后,如果不需要捕獲匹配的文本,則應使用正則表達式對象的test()
方法來獲取簡單的布爾值:
if ( /^[a-z]{3}$/i.test(txt1) ) {}
不,您沒有為正則表達式使用正確的分隔符,例如/reg/
:
if(txt1.match(/[A-Za-z]{3}/)){}
盡管match()
將根據傳遞的任何字符串構造一個正則表達式,但是當您需要開始轉義字符時,您可能會感到困惑。
您還需要分別使用起始錨和結束錨^
和$
,以確保正則表達式從字符串的開頭到字符串的結尾匹配:
if(txt1.match(/^[A-Za-z]{3}$/)){}
最后,如果您只想進行true
或false
檢查(在這種情況下,您需要這樣做),請使用test()
而不是match()
:
if(/^[A-Za-z]{3}$/.test(txt1)){}
test()
是正則表達式實例的一種方法,因此正則表達式位於函數調用之前。
它將與任何具有3個或更多字符的字符串匹配,以將其嚴格限制為3個字母,請嘗試
if(txt1.match('^[A-Za-z]{3}$')){}
很接近
if(txt1.match(/[A-Za-z]{3}/)) {}
注意:如果用戶輸入3個字母,而不是數字或特殊字符,則上述內容將匹配。 如果用戶輸入類似的內容,它也會匹配
234abc098
如果要確保總共只有3個字符,請確保將正則表達式中的字符串開頭和字符串末尾放入
^[A-Za-z]{3}$
if (txt1.match(/^[A-Za-z]{3}$/)) { }
我改變了兩件事。 首先,Javascript中的正則表達式以斜杠開頭和結尾。 其次,我添加了開始和結束字符(^和$)。 這樣可以確保字符串的統計信息后面跟隨3個字母,然后結束。 表示它必須正好是3個字母。
不會。首先,語法錯誤,應使用正則表達式文字(實際上,字符串在這里也可以使用):
txt1.match(/[A-Za-z]{3}/)
接下來,如果您需要3個字符或更多,請確保包括開始和結束錨點:
txt1.match(/^[A-Za-z]{3}$/)
Javascript對於正則表達式具有特殊的語法: /regex/
。 下面顯示了正則表達式的正確實現:
if(txt1.match(/[A-Za-z]{3}/)){}
在String對象(例如"string"
)和RegExp對象(例如/regex/
)上有幾種RE(正則表達式)函數可用。 如果只想針對一個regexp測試字符串而不保存結果,建議使用RegExp.test
函數:
if(/^[A-Za-z]{3}$/.test(txt1)){}
注意:我添加了^
和$
因為它應該匹配所有字符,僅3個字符是不夠的。 ^
表示字符串的開頭, $
表示結尾。
首先,您必須使用正斜杠而不是單引號將正則表達式直接傳遞給javascript中的match()。
另外,您當前正在使用表達式檢查的是,如果連續3個字母出現在選中的字符串中。 如果要確保用戶僅輸入3個字母,不要輸入其他任何字符,請同時使用正則表達式檢查字符串的開頭( ^
)和結尾( $
)。 完整的表達式如下所示:
if(txt1.match(/^[A-Za-z]{3}$/)){}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.