簡體   English   中英

JavaScript中的正則表達式以匹配通配符

[英]Regular expression in JavaScript to match wildcard

我正在嘗試使用JavaScript中的正則表達式來驗證用戶輸入。 有效輸入是至少兩個帶有*符號的字符。 換句話說,有效格式為

< '*' or nothing><at least two characters>< '*' or nothing>

所以有效輸入是

Mu*
*pa
*pa*

無效的輸入是

*e*
*e*t
*e*t*
pa**

我正在嘗試遵循表情,但無法正常工作。

^{\*}?[A-Za-z]{\*}?$

定義不清楚,但是讓我們假設一個有效的字符串必須具有一個初始或最終*字符(即,一個根本沒有*的字符串是無效的)。 是否需要最后一個*取決於是否存在一個初始* 我懷疑(盡管我尚未證明)這意味着您的有效字符串集無法用常規語言描述。

相反,你的語言可以描述為兩個普通漢語語言的結合:一是其字符串結束(和可選的開頭)用一* ,並用一個字符串,其開始(以及可選的結束) *

/^\*?\w{2,}\*$|^\*\w{2,}\*?$/

在這里,我們接受

  • 至少兩個字母的字符串,帶有必需的最終* (和可選的前導* )或
  • 至少兩個字母的字符串,帶有必需的前導* (和可選的final * )。

調整: ^\\*?\\w{2,}\\*?$應該可以解決問題。
糟糕:剛剛注意到@NiettheDarkAbsol注釋中的“提示”-基本上提供了相同的解決方案。
但是,由於有效序列的所有示例都至少帶有一個星號,因此我們可能都錯了。 不過,在“正式”說明中沒有明確指出…

這不只是這個嗎?

/^\\*?[a-zA-Z]{2,}\\*?$/

http://regex101.com/r/gT3nY4/1

暫無
暫無

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

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