Связанный .lib-файл связан с .dll
У меня была такая же проблема. Скажем, у меня есть проекты MyProject и TestProject. Я эффективно связал файл lib для MyProject с TestProject. Однако этот файл lib был создан, так как была построена DLL для MyProject. Кроме того, я не содержал исходный код для всех методов в MyProject, но только доступ к точкам входа DLL.
Чтобы решить проблему, я построил MyProject как LIB и связал TestProject с этим .lib-файлом (скопируйте вложенный файл .lib в папку TestProject). Затем я смогу снова создать MyProject как DLL. Он компилируется, поскольку lib, с которым связан TestProject, содержит код для всех методов в классах MyProject.
Чтобы построить регулярное выражение из переменной в JavaScript, вам нужно будет использовать конструктор RegExp
со строковым параметром.
function reg(input) {
var flags;
//could be any combination of 'g', 'i', and 'm'
flags = 'g';
return new RegExp('ReGeX' + input + 'ReGeX', flags);
}
, конечно, это очень наивный пример. Он предполагает, что input
был правильно экранирован для регулярного выражения. Если вы имеете дело с пользовательским вводом или просто хотите сделать его более удобным для соответствия специальным символам, вам нужно выполнить специальные символы :
function regexEscape(str) {
return str.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&')
}
function reg(input) {
var flags;
//could be any combination of 'g', 'i', and 'm'
flags = 'g';
input = regexEscape(input);
return new RegExp('ReGeX' + input + 'ReGeX', flags);
}
Вот довольно бесполезная функция, возвращающая значения, обернутые конкретными символами. :)
jsfiddle: https://jsfiddle.net/squadjot/43agwo6x/
function getValsWrappedIn(str,c1,c2){
var rg = new RegExp("(?<=\\"+c1+")(.*?)(?=\\"+c2+")","g");
return str.match(rg);
}
var exampleStr = "Something (5) or some time (19) or maybe a (thingy)";
var results = getValsWrappedIn(exampleStr,"(",")")
// Will return array ["5","19","thingy"]
console.log(results)
, если вы используете шаблоны шаблонов es6 , являются опцией ...
string.replace(new RegExp(`ReGeX${testVar}ReGeX`), "replacement")
Вы можете использовать объект RegExp:
var regexstring = "whatever";
var regexp = new RegExp(regexstring, "gi");
var str = "whateverTest";
var str2 = str.replace(regexp, "other");
document.write(str2);
Тогда вы можете сконструировать regexstring
любым способом.
Вы можете узнать больше об этом здесь .
принятый ответ не работает для меня и не следует . Примеры MDN
см. в разделе «Описание» в ссылке
I ' d go со следующим, это работает для меня:
let stringThatIsGoingToChange = 'findMe';
let flagsYouWant = 'gi' //simple string with flags
let dynamicRegExp = new RegExp(`${stringThatIsGoingToChange}`, 'flagsYouWant')
// that makes dynamicRegExp = /findMe/gi