我需要一個正則表達式來驗證以下條件中的字符串。JavaScript中的正則表達式(正則表達式)
- 從逐字文本ROLE_開始。
- 只允許使用大寫字母和不帶符號的組合。
- 必須有最少6個,最多20個字符。
- 不允許連續兩個下劃線。
- 不允許引導和/或拖尾下劃線。
- 文本ROLE_ADMIN不允許使用。
因此,在Java中的正則表達式如下工作。
(?!.*__.*)(?!^ROLE_ADMIN$)(?!.*_$)(ROLE_[A-Z_]{1,15})
但在JavaScript中,像ROLE_ADMIN_s
一個字符串(s
在小的情況下結束)被視爲一個有效的字符串,不應該實際上是。最大允許字符(20)也未被正確驗證。
我使用的match()
功能類似,
if($("#txtAuthority").val().match("(?!.*__.*)(?!^ROLE_ADMIN$)(?!.*_$)(ROLE_[A-Z_]{1,15})"))
{
//...
}
您需要添加''^到開始和'$'到最後。另外,這不是你的問題,因爲瀏覽器在這種情況下自動處理它,但是你應該在'/ myexpression /'中包裝正則表達式而不是''myexpression'': – Dave 2013-05-05 16:18:34
:-)我從js移動到java時遇到了相反的麻煩 - 添加'。*'在開始和結束時... – anishsane 2013-05-05 16:22:58