繁体   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