我想制作一个不区分大小写的正则表达式(用于JavaScript),以匹配街道名称,即使每个单词都已被缩写。例如:
大学应与大学大街(N University Ave)相匹配
国王大道应与马丁·路德·金大道相匹配
ne 9th应该与NE 9th St和9th St NE都匹配
“替换”正则表达式的加分(JK),该正则表达式用<b>
标签包装匹配的文本。
最佳答案
你得到了:
"n univ av"
你要:
"\bn.*\buniv.*\bav.*"
所以你也是:
var regex = new RegExp("n univ av".replace(/(\S+)/g, function(s) { return "\\b" + s + ".*" }).replace(/\s+/g, ''), "gi");
哎呀!
但是我还没有完成,我想要我的奖励积分。因此,我们将模式更改为:
var regex = new RegExp("n univ av".replace(/(\S+)/g, function(s) { return "\\b(" + s + ")(.*)" }).replace(/\s+/g, ''), "gi");
进而:
var matches = regex.exec("N University Ave");
现在我们得到:
因此,我们可以这样写:
var result = '';
for (var i=1; i < matches.length; i++)
{
if (i % 2 == 1)
result += '<b>' + matches[i] + '</b>';
else
result += matches[i];
}
关于javascript - 正则表达式以匹配部分单词(JavaScript),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2655117/