簡體   English   中英

這個Java正則表達式正確嗎?

[英]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}$/)){}

最后,如果您只想進行truefalse檢查(在這種情況下,您需要這樣做),請使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM