我需要使用new RegExp
如果两个字符之间存在特定字符串,则需要匹配,但如果字符/
和?
之间的字符串类似,则不匹配。
即:
要匹配的字符串是:
"https://www.mysite.se/should-match?ba=11"
我有should-ma
not
应该给出任何匹配。但是should-match
应该匹配
所以我需要创建new RegExp()
有什么想法吗?
答案 0 :(得分:0)
试试这个:
(?!\/)[^\/\?]*(?=\?)
将\/
替换为起始分隔符,将\?
替换为末尾分隔符。如果开头或结尾分隔符中包含.?*+^$[]\(){}|-
中的任何一个,则需要在它们之前添加\
,或者使用此函数为您完成工作:
var escape = function(str) {
return (str+'').replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&");
};
替代:
var matcher = function(str, start, end){
var quote = function(str) {
return (str+'').replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&");
};
return str.match(new RegExp(quote(start) + "[^" + quote(start) + quote(end) + "]*" + quote(end)))[0].slice(1, -1)
};
像matcher("https://www.mysite.se/should-match?ba=11", "/", "?")
一样使用。