Мне нужно использовать new RegExp
Мне нужно, чтобы получить матч, если есть конкретная строка между двумя символами, но не совпадением, если это аналогичная строка между этими символами, /
и ?
, То есть:
Строка для соответствия:
"https://www.mysite.se/should-match?ba=11"
И я should-ma
Это not
должно совпадать. Но should-match
должен дать совпадение. Мне нужно создать new RegExp()
Есть идеи?
Попробуй это:
(?!\/)[^\/\?]*(?=\?)
Замените \/
разделителем начала и \?
с конечным разделителем. Если разделители начала или конца имеют любой из .?*+^$[]\(){}|-
в них, вам нужно будет добавить a \
перед ними или использовать эту функцию для выполнения вашей работы:
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", "/", "?")
.
new RegExp
. Пожалуйста, ответьте, и я принимаю :)