簡體   English   中英

正則表達式允許特殊字符但不允許前導/尾隨空格

[英]regex to allow special characters but not leading/trailing white space

我想只為密碼輸入字段允許單詞之間的所有特殊字符和空格。

如果在字符串的開頭和結尾輸入空格,則正則表達式應該失敗

任何有用的javascript正則表達式?

我試過 \\S 這不接受任何空格,這樣就足夠了嗎?

我試過 \\A\\s|\\s*\\Z ,但無法否定這一點。

使用類似[^\\s]東西就足夠了。

JS RegExp 不支持\\A (字符串開頭)和\\Z (字符串結尾)錨點。 如果您使用/\\S/它將只匹配字符串內任何地方的任何非空白字符。 如果您使用/^\\s|\\s*$/它將匹配開頭的空格或結尾的任何 0 個或多個空格。

你需要

/^\S+(?:\s+\S+)*$/

請參閱正則表達式演示

它將匹配:

  • ^ - 字符串的開始
  • \\S+ - 1 個或多個非空白字符
  • (?:\\s+\\S+)* - 任何 0 次或多次出現
    • \\s+ - 1+ 個空格
    • \\S+ - 1+ 個非空白字符
  • $ - 字符串的結尾。

JS演示:

 var strs = ['Abc 123 !@#', 'abc123@', ' abc34', ' a ', 'bvc ']; var rx = /^\\S+(?:\\s+\\S+)*$/; for (var s of strs) { console.log("'"+s+"'", "=>", rx.test(s)); }

我不知道這是否完全沒問題,但在你的情況下,我認為這可以更好地適用

^((\\w)*){1}$

暫無
暫無

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

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