我想要实现什么?
->替换字符串中与正则表达式不匹配的单词,并将其替换为其他文本。
不过我不太擅长正则表达式,所以如果你能帮助我那就太好了。
例如:
var str = "New York";
alert(str.replace(/some_magical_reg_ex/, "Jersey"));
所以我想“New”,并将“York”一词替换为其他内容。结果应该是“新泽西”;
我尝试了什么?
https://regex101.com/r/fQ9fN8/3对此,我想强调“angeles”这个词,这样我就可以用其他词代替它。
请注意示例中的最后一行。给出的输入是“洛杉矶”,但没有突出显示/匹配。
如果您认为我遗漏了任何信息,请告诉我,我会相应地更新问题。
编辑: 让我尝试解释更多。
我有一个下拉菜单,显示位置。因此,如果用户输入“Lo”,它将显示以下选项。路易斯安那州、洛杉矶等(以“Lo”开头)。
所以在这个列表中,我需要申请<b></b>
文本其余部分的标签。
即当用户输入“Lo”时,显示
- 'Louisiana'
- “洛杉矶洛杉矶”
所以在 str.replace(/some_magical_reg_ex/, <b>unmatched_text</b>)
的情况下
str = 'Lo'(用户输入)和 unmatched_text = 'uisiana' 或 'Angeles'
最佳答案
这是匹配用户输入后的文本的正则表达式和非正则表达式方法:
var options = ["lousiana", 'los angeles', 'another']
var userInput = "lo"
options.forEach(function(val){
if(val.indexOf(userInput) == 0){
console.log(val.replace(new RegExp('('+userInput+')(.*)', 'gi'), "$1<b>$2</b>"))
}
})
options.forEach(function(val){
var idx = val.indexOf(userInput)
if(idx == 0){
console.log(userInput+'<b>'+val.substring(userInput.length)+'</b>')
}
})
关于javascript - 正则表达式查找字符串中不匹配的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36501274/