如何连接两个 javascript 变量和正则表达式
How to concat two javascript variables and regex expression
我希望能够在中间使用正则表达式连接两个变量。
例如
var t1 = "Test1"
var t2 = "Test2"
var re = new RegEx(t1 + "/.*/" + t2);
所以我想要的结果是一个匹配这个的表达式..
"Test1 this works Test2"
如何获得能够匹配任何结尾带有 Test1 和 Test2 的文本的结果?
试试这个(我用 nodejs):
> var t1 = "Test1"
> var t2 = "Test2"
> var re = new RegExp('^' + t1 + '.*' + t2 + '$')
> re
/^Test1.*Test2$/
> re.test("Test1 this works Test2")
true
备注
.*
如评论中所述,这意味着 从 0 到 ~ 重复的任何字符
- 调用
RegExp
构造函数时会自动添加 斜杠 ,但不能嵌套未受保护的 斜杠 分隔符
- 为了确保
Test1
在开头,我将 ^
锚点 放在 Test2
末尾,我添加了 $
主播
- regex 构造函数不是
ReGex
而是 RegExp
(注意尾随 p
)
RegExp 构造函数负责为您添加正斜杠。
var t1 = "Test1";
var t2 = "Test2";
var re = new RegExp(t1 + ".*" + t2);
re.test("Test1 some_text Test2"); // true
您不需要正则表达式:
var t1 = 'Test1';
var t2 = 'Test2';
var test = function(s) { return s.startsWith(t1) && s.endsWith(t2); };
console.log(test('Test1 this works Test2'));
console.log(test('Test1 this does not'));
注意两个变量的值不包含任何特殊的正则表达式字符,或者转换这些值以转义任何特殊的正则表达式字符。
当然,还要确保中间的正则表达式与您想要的相匹配:-)
如果您知道开头和结尾,您可以强制执行:
var re = new RegExp("^" + t1 + ".*" + t2 + "$");
我希望能够在中间使用正则表达式连接两个变量。
例如
var t1 = "Test1"
var t2 = "Test2"
var re = new RegEx(t1 + "/.*/" + t2);
所以我想要的结果是一个匹配这个的表达式..
"Test1 this works Test2"
如何获得能够匹配任何结尾带有 Test1 和 Test2 的文本的结果?
试试这个(我用 nodejs):
> var t1 = "Test1"
> var t2 = "Test2"
> var re = new RegExp('^' + t1 + '.*' + t2 + '$')
> re
/^Test1.*Test2$/
> re.test("Test1 this works Test2")
true
备注
.*
如评论中所述,这意味着 从 0 到 ~ 重复的任何字符
- 调用
RegExp
构造函数时会自动添加 斜杠 ,但不能嵌套未受保护的 斜杠 分隔符 - 为了确保
Test1
在开头,我将^
锚点 放在Test2
末尾,我添加了$
主播 - regex 构造函数不是
ReGex
而是RegExp
(注意尾随p
)
RegExp 构造函数负责为您添加正斜杠。
var t1 = "Test1";
var t2 = "Test2";
var re = new RegExp(t1 + ".*" + t2);
re.test("Test1 some_text Test2"); // true
您不需要正则表达式:
var t1 = 'Test1';
var t2 = 'Test2';
var test = function(s) { return s.startsWith(t1) && s.endsWith(t2); };
console.log(test('Test1 this works Test2'));
console.log(test('Test1 this does not'));
注意两个变量的值不包含任何特殊的正则表达式字符,或者转换这些值以转义任何特殊的正则表达式字符。
当然,还要确保中间的正则表达式与您想要的相匹配:-)
如果您知道开头和结尾,您可以强制执行:
var re = new RegExp("^" + t1 + ".*" + t2 + "$");