Мне пришлось подключить порт конечной точки управления (по умолчанию 19000) к соединению Service Fabric в конвейере выпуска:
tcp: //clustername.westeurope.cloudapp.azure.com: 19000
blockquote>Не указывая порт, вы получите вышеуказанную ошибку.
Используйте конструктор объекта RegExp для создания регулярного выражения из строки:
var re = new RegExp("a|b", "i");
// same as
var re = /a|b/i;
Я использую eval
для решения этой проблемы.
Например:
function regex_exec() {
// Important! Like @Samuel Faure mentioned, Eval on user input is a crazy security risk, so before use this method, please take care of the security risk.
var regex = $("#regex").val();
// eval()
var patt = eval(userInput);
$("#result").val(patt.exec($("#textContent").val()));
}
var flags = inputstring.replace(/.*\/([gimy]*)$/, '$1');
var pattern = inputstring.replace(new RegExp('^/(.*?)/'+flags+'$'), '$1');
var regex = new RegExp(pattern, flags);
или
var match = inputstring.match(new RegExp('^/(.*?)/([gimy]*)$'));
// sanity check here
var regex = new RegExp(match[1], match[2]);
Используйте конструктор объекта JavaScript RegExp .
var re = new RegExp("\\w+");
re.test("hello");
Вы можете передать флаги в качестве второго строкового аргумента конструктору. Подробнее см. В документации.
Я предлагаю вам также добавить отдельные флажки или текстовое поле для специальных флагов. Таким образом становится ясно, что пользователю не нужно добавлять какие-либо //
. В случае замены предоставьте два текстовых поля . Это сделает вашу жизнь намного проще.
Почему? Потому что в противном случае некоторые пользователи добавят //
, а другие - нет. А некоторые допустят синтаксическую ошибку. Затем, после того, как вы удалили //
, вы можете получить синтаксически допустимое регулярное выражение, которое не похоже на то, что задумал пользователь, что приведет к странному поведению (с точки зрения пользователя).
Вы можете запросить флаги с помощью флажков, а затем сделать что-то вроде этого:
var userInput = formInput;
var flags = '';
if(formGlobalCheckboxChecked) flags += 'g';
if(formCaseICheckboxChecked) flags += 'i';
var reg = new RegExp(userInput, flags);