簡體   English   中英

Angularjs正則表達式

[英]Angularjs regular expression

在我的Angularjs應用程序中,我需要有兩個模式的正則表達式,用於表單驗證,具有以下條件。

模式1:

輸入框應該接受沒有空格的字母數字,並且它還應該允許用戶使用字符串中的~!@#$-_ any字符,除了這些字符之外應該允許其他字符(%, &, ^ etc) 它也不應該允許前導/尾隨空格。

例子 :

 ab@4_w    :  valid
 sd!tye123  : valid
 sd%tye123  :  Invalid
 sd*tye123  :  Invalid

$ scope.pattern1 = [\\ w〜!@#\\ $ - ] +

模式2:應該只允許沒有空格的字母數字,也不允許包括(_)在內的其他字符。 它也不應該允許前導/尾隨空格。

例子 :

  a4hgg5  : Valid
  a4_6hy   : Invalid
  a@yb    : invalid

$ scope.pattern2 = [\\ w] +

需要修改$scope.pattern1$scope.pattern2以滿足我的上述要求。

嘗試

^[\w~!@#\$-]+$

說明

  1. ^字符串的開頭
  2. [\\w~!@#\\$-]+任意數量的您想要的人物,(注意,需要逃避$\\$
  3. $字符串結束

請參閱Regex101上的Action 如果要使空字符串有效,請為量詞指定*而不是+ 此外,使用\\w您不需要設置i標志,因為它已經覆蓋了大寫和小寫字母。

它不應該允許前導/尾隨空格。

在這兩種情況下,將ng-trim="false"屬性添加到input元素。

輸入框應該接受沒有空格的字母數字,並且它還應該允許用戶使用字符串中的~!@#$-_ any字符,除了這些字符之外應該允許其他字符( %&^等)。

您擁有的模式是正確的,但不建議轉義不必轉義的字符,請使用:

^[\w~!@#$-]+$

\\w匹配[a-zA-Z0-9_]

注意:如果您將模式作為字符串傳遞,請不要添加^$ anchors,而是加倍反斜杠: "[\\\\w~!@#$-]+"

應該只允許沒有空格的字母數字,也不允許包括( _ )在內的其他字符。

它更容易: ^[a-zA-Z]+$ 關於上述錨點的相同評論適用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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