Регулярное выражение - начинается со значения или после второй запятой начинается со значения - PullRequest
0 голосов
/ 22 марта 2019

Я пытаюсь разработать регулярное выражение, которое имеет такую ​​логику:

if(startsWith(value) || afterSecondCommaStartsWith(value)) {}

У меня есть строка вроде:

Thomas Municipal Court, Creber, Lester County, TX 12345

Если value = "Tho" или value = "Les" это должно соответствовать

Я реализую это в JavaScript, и это то, что у меня есть:

var matcher = new RegExp("^", $.ui.autocomplete.escapeRegex(term), "i");

Это работает для value = "Tho", но не value = "Les" (потому что у меня нет логики запятой).

(Кроме того, я использую это для логики автозаполнения интерфейса JQuery UI, если кому-то интересно)

1 Ответ

1 голос
/ 22 марта 2019

Вы можете построить динамическое регулярное выражение.

let value1 = "Tho"
let value2 = "Les"
let str = `Thomas Municipal Court, Thomas, Lester County, TX 79457`

let reg = `(?:^${value1})|(?:^.*?,.*?,\\s*${value2})`

var matcher = new RegExp(reg,"i");
console.log(matcher)
console.log(matcher.test(str))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...