要实现的是查找出符号“]”在字符串中的位置,但如果“]”前面是“\”符号的话,就不匹配
var str = "\\\\] ] df";
var index = str.search(/([^\\]\])/) + 1;
alert(str.substring(0, index));
如上面代码,期望的结果是“\\] ]”
但上面代码的结果是“\\]”
var str = "\\\\] ] df";
var index = str.search(/([^\\]\])/) + 1;
alert(str.substring(0, index));
如上面代码,期望的结果是“\\] ]”
但上面代码的结果是“\\]”
var str = "\\\\]abcd] df";
var index = str.search(/([^\\]\])/) + 1;
alert(str.substring(0, index));
substring的第二个参数是length,你传的是索引
var index = str.search(/[^\\]\]/) + 2;
alert(str.substring(0, index));
如果是这样的话,那就可以得到期望结果(正则表达式匹配的是2个字符,任意非\加上]的字符,所以索引应该是加2)
但是...那是在测试字符串是这样的形式
"\\\\] df] ksjdf]"
下才有用
如果测试字符串是
"\\\\] ksdfj"
的话,就出问题了...