簡體   English   中英

卡在正則表達式中的JavaScript

[英]Stuck with regex expression in Javascript

我必須在javascript中測試這樣的字符串:

var str = "eleme_eus = \'Generikoa_Erlijioa\' or eleme_eus like \'Eliza_igles_a\' or eleme_eus like \'Parroki_a\' or eleme_eus like \'Erm_ita\' or eleme_eus like \'Komen_tua\' or eleme_eus like \'Santutegia\'";

我一直在嘗試創建一個正則表達式來這樣做,但是我無法通過\\'部分。

現在,我(正在工作):

var regex = /\w\s(=|like)\s/;

之后,我嘗試將反斜杠,引號引起來……始終為假。

我只需要進入“或/和”部分,然后重復一下。

先感謝您。

編輯:

通過這兩個網站(thx),我得出以下表達式:

在此處輸入圖片說明

\w+[-\w]*\s(=|like)\s\\\'\w+\\\'(\s(and|or)\s\w+[-\w]*\s(=|like)\s\\\'\w+\\\')*

但是如果我在控制台(Chrome)中對其進行測試...

在此處輸入圖片說明

regex.test("field-name like \'word\' or field-name like \'word_word\'");

在這里,您需要同時對/'進行轉義,如下所示:

var regex = /\w\s(=|like)\s\\\'\w+\\\'/;

您可以在Regex101 Demo中看到它是正確的。

此正則表達式應為您工作:

var re = /\w+[-\w]*\s(?:=|like)\s'\w+'(?:\s(?:and|or)\s\w+[-\w]*\s(?:=|like)\s'\w+')*/g;

正則演示

var str = "field-name like 'word' or field-name like 'word_word'";
re.test(str);
//=> true

str = "eleme_eus = \'Generikoa_Erlijioa\' or eleme_eus like \'Eliza_igles_a\' or eleme_eus like \'Parroki_a\' or eleme_eus like \'Erm_ita\' or eleme_eus like \'Komen_tua\' or eleme_eus like \'Santutegia\'";
"eleme_eus = 'Generikoa_Erlijioa' or eleme_eus like 'Eliza_igles_a' or eleme_eus like 'Parroki_a' or eleme_eus like 'Erm_ita' or eleme_eus like 'Komen_tua' or eleme_eus like 'Santutegia'"    
re.test(str);
//=> true

您的輸入沒有文字反斜杠,因為\\'將被解釋為單個'

暫無
暫無

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

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