JavaScript以编程方式创建正则表达式
JavaScript create regex programmatically
我知道我可以像这样创建一个javascript替换:
str = str.replace(/mytarget/g, 'some value');
将替换所有出现的字面值mytarget
。然而,我有一个大的词/短语数组,我想在regex替换中使用,并且由于regexp只是语言元素(它们在声明时没有包装在字符串中),我找不到一种方法来编程地声明regexp,除非我硬编码它们。如果我输入:
var arr=['word', 'another', 'hello'];
我想生产:
str = str.replace(/word/g, 'some value');
str = str.replace(/another/g, 'some value');
str = str.replace(/hello/g, 'some value');
请张贴一个例子,我可以使用regexp,因为我将添加更多的表达式到regexp,如空白等,所以我需要它的regexp方式。最后,请不要提供使用eval
,我相信有更好的方法。
您需要为此调用RegExp构造函数。例子:
['word', 'another', 'hello'].forEach(function( word ) {
var myExp = new RegExp(word, 'g');
str = str.replace(myExp, 'some value');
});
构造函数的第一个参数是一个字符串,它接受//
之间包装的任何内容。第二个参数也是string,您可以在其中传递g
、i
等修饰符。
你可以像这样动态地构建一个RegEx -
var word = 'hello';
var re = new RegExp("''b" + word + "''b","g");
请记住,您需要使用''
'
字符for( i in arr )
{
str = str.replace(new RegExp("''"+arr[i],"g"), "some value")
}
如果您正在动态地生成RegExp,您可以使用RegExp对象
var a = new RegExp("word")
相关文章:
- 使用变量中的 gi 标志创建正则表达式
- 从对象键创建正则表达式
- 如何创建正则表达式 查找 JS 文件(或 JSON)中的所有字符串
- 如何从字符串创建正则表达式
- 如何为此格式创建正则表达式B001169875
- 如何创建正则表达式javascript函数来匹配特定的字符串组合
- 如何为 -90 到 -90 字符串接受创建正则表达式
- 如何创建正则表达式检查罗马数字
- 用javascript创建正则表达式
- 如何为这些句子创建正则表达式
- 创建正则表达式数组
- Javascript RegExp:使用变量创建正则表达式
- JavaScript以编程方式创建正则表达式
- 为javascript创建正则表达式
- 在JavaScript中创建正则表达式的问题
- 如何从JS对象的键创建正则表达式
- 如何在javascript中为文件夹名称创建正则表达式
- 如何创建正则表达式以在较大字符串中查找子字符串
- 使用RegExp动态创建正则表达式,并过滤内容
- 从掩码值创建正则表达式模式以验证邮政编码