簡體   English   中英

在字符串的開頭和結尾查找特殊字符和空格的正則表達式是什么?

[英]What is the regex for finding special characters and whitespace at the beginning AND end of the string?

我正在嘗試編寫一個驗證器來檢查是否存在空格和/或特殊字符,但是我不確定如何繼續。

到目前為止,這是我所擁有的:

const isValid = !/(^\s!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?|!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?\s$)/g.test(control.value)

但它似乎不起作用。 我確定我的正則表達式做錯了什么,但我不知道該怎么辦。

現在,您正在嘗試以相同的順序在字符串的開頭或結尾匹配所有特殊字符。

您需要使用方括號告訴正則表達式您正在尋找這些字符之一,而不是全部。

(^[\\s!@#$%^&*()_+\\-=\\[\\]{};':"\\\\|,.<>\\/?]|[!@#$%^&*()_+\\-=\\[\\]{};':"\\\\|,.<>\\/?\\s]$)

您可以改用下面的正則表達式檢查一下嗎:

/^[\s@!*$%&^#$()\-+_={}[\]/?><.,'";:`~|].*[\s@!*$%&^#$()\-+_={}[\]/?><.,'";:`~|]$/gm

您正在使用的正則表達式存在問題,例如未正確轉義和未正確分組的字符。

使用正則表達式生成器來構建正則表達式很容易,您可以在構建自身時了解每個字符的含義和用法。

要檢查開頭和結尾是否沒有特殊字符,您需要使用正則表達式字符類 ,並在[]之間使用字符 ^檢查開始, $檢查結束。 管道| 用於確保檢查開始和結束。

const isValid = !/^[\b\^\s\!\@\#\$\%\^\&\*\(\)\_\+\-\=\[\]\{\}\;\'\:\"\b\|\,\.\<\>\/\?]|[\b\^\s\!\@\#\$\%\^\&\*\(\)\_\+\-\=\[\]\{\}\;\'\:\"\b\|\,\.\<\>\/\?]$/.test(control.value)

在字符串和正則表達式中轉義非特殊字符不會對結果產生任何影響,因此對所有字符都使用反斜杠更為安全(無錯誤)。 它使代碼更易於理解。 它的執行速度不會變慢。

為了避免后退,您可以執行\\b ,而不是\\\\

您不需要用於繼續搜索的g標志

無需在這些上退格:
! @ # $ % ^ & * ( ) , . ? " : { } | < >

暫無
暫無

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

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