我有一个无法解决的问题。假设我有一个保留 regExp 模式的变量,该变量由用户提供:
var pattern = this.state.regExpVal;
我还有一个变量来保存 textInput 的值,这意味着一些文本,例如邮政编码。
var str = this.state.textAreaVal;
我创建一个新的 regExp 对象:
var myRegEx = new RegExp(pattern, 'g');
结果不太好:(似乎全局标志搜索不起作用,我不明白为什么);
var result = str.match(myRegEx);
有人可以帮忙吗?
最佳答案
let reg = new RegExp("super", 'g');
"SOsuperISsuper!".match(reg);
结果是一个具有 2 个元素的数组 ["super","super"] 正如预期的那样。
我猜问题出在您的 this
一些 未定义
或 null
值或区分大小写(尝试包含“i”)
编辑:
let myObject = {
state: {
regExpVal: "super"
}
}
let reg = new RegExp(myObject.state.regExpVal, 'g');
"SOsuperISsuper!".match(reg);
编辑2:
let myObject = {
state: {
regExpVal: "super"
}
};
let pattern = myObject.state.regExpVal;
let reg = new RegExp(pattern, 'g');
"SOsuperISsuper!".match(reg);
关于javascript - 如何在 JavaScript 中将变量传递到 regExp 对象并使其工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42982714/