我是正则表达式的新手我正在寻找一种方法来检查字符串是否包含匹配但匹配不应该是单引号或双引号。
ex:
var match = 'gs.info';
var example1 = 'var test=1; gs.info(test);'; // True
var example2 = 'var test="gs.info(test); blah blah"'; // false because it is in double quotes
var example3 = "var test='gs.info(test); blah blah'"; // false because it is in single quotes
答案 0 :(得分:0)
此示例有效:
var regex = /^(\.*(["'][\d\w\s]+["'])?[^"\'])*gs\.info(\(["']*[^)"']*["']*\))(\.*(["'][\d\w\s]+["'])?[^"\'])*$/g;
regex.test('var test="gs.info(test); blah blah"');
regex.test('var test=\'gs.info(test); blah blah\'');
正则表达式的意思是:
^[^"']*
:在行的开头不是双引号或单引号的任何内容,重复一次0到零,
[^"']*$
:任何不是双引号或单引号的引号,直到重复一次或零次的行结束。
不要忘记逃避点,因为这个角色在正则表达式中有特殊含义。