我有一个字符串和匹配的模式:
var string = 'stackoverflow Javascript Regex Help';
var pattern=/(^stackoverflow Javascript)/;
我正在寻找一种方法来重复使用我以前的模式,而无需再次重写它。不久,我想在我之前的模式结尾添加一个额外的选项(在拆分之前匹配一个空格)
var newString=string.split(pattern+/(.\S*)/);
alert(newString); //Regex Help
但这不起作用。 有没有办法可以实现这个目标?
谢谢你的支持。
答案 0 :(得分:3)
您可以使用RegExp
从字符串构建正则表达式:
var common_pattern = "(^stackoverflow Javascript)";
var extra_pattern = "(.\\S*)"; // need to escape the escape character because the pattern is now a string
var regexp = new RegExp(common_pattern + extra_pattern);
var newString = string.split(regexp);
答案 1 :(得分:0)
如果您真的想重复使用该模式,可以使用RegExp的toString
来完成。
此示例首先使用数字1
拆分字符串。然后将数字2
添加到模式以在12
分割。
剪断:
var newPattern = new RegExp(pattern.toString().slice(1,-1) + '2');
此致
编辑: 更新了正确处理修饰符的示例。