簡體   English   中英

正則表達式中的無效組

[英]invalid group in regular expression

我想檢查是否有人沒有輸入yahoo,gmail或任何組word。為此,我創建了如下正則表達式,但是當我嘗試放入javascript時,它給出了無效的組。

if (str.match('/^(.*?(\W|^)(?i)(yahoo|gmail|com)(\W|$))$/')) {
    return true;    
}

您得到的錯誤與(?i) ,這是JS regex引擎不支持的內聯修飾符。 (\\W|^)是某些庫中用於表示單詞邊界的常見構造,但在JS中,這里更容易使用單詞邊界\\b

我建議

 var str = "YaHoo here"; if (/\\b(?:yahoo|gmail|com)\\b/i.test(str)) { console.log("Contains forbidden word!"); } else { console.log("Good!"); } 

圖案細節

  • \\b前導詞邊界
  • (?:yahoo|gmail|com) -3個選擇中的任何一個
  • \\b尾隨單詞邊界

暫無
暫無

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

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