gpt4 book ai didi

javascript - 为什么全局修饰符不能正常工作?

转载 作者:行者123 更新时间:2023-11-28 20:11:59 25 4
gpt4 key购买 nike

为什么“g”修饰符在这种情况下不起作用?我认为用逗号分隔变量并添加“g”是将匹配设置为全局匹配的可接受方法?

str = "cabeca";
testcases = [];
x = 0;
for (i = 0; i < str.length; i++) {
testcases = str[i];
x = i + 1;
while (x < str.length) {
testcases += "" + str[x];
if (str.match((testcases),"g").length >= 2) {
console.log(testcases);
}
x++;
}
}

当前演示(仍然无法正常工作)http://jsfiddle.net/zackarylundquist/NPzfH/

最佳答案

您需要定义一个实际的 RegExp 对象。

new RegExp(testcases, 'g');

但是请注意,如果您的字符串包含需要在正则表达式模式中转义的字符,则可能会导致意外结果。

例如

var s = 'test.',
rx = new RegExp(s);

rx.test('test1'); //true, because . matches almost anything

因此,您必须在输入字符串中对其进行转义。

rx = new RegExp(s.replace(/\./, '\\.'));

rx.test('test1'); //false
rx.test('test.'); //true

关于javascript - 为什么全局修饰符不能正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19780568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com