首页 > 解决方案 > 正则表达式 - 以值开头或在第二个逗号以值开头之后

问题描述

我正在尝试开发具有此逻辑的正则表达式:

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 自动完成逻辑)

标签: javascriptregex

解决方案


您可以构建动态正则表达式。

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))


推荐阅读