[英]Not to match with regex in angular if there are any attachments, letters, words at the beginning and(or) end
更新问题;
首先大家好,我是新来的,我会努力解决我的问题。
数据是如何找到我的;
0: {highWord: 'hafif ticari araçlarda', color: '#00FF00'}
1: {highWord: 'hafif ticari', color: '#00FF00'}
2: {highWord: 'kamyon', color: '#00FFFF'}
3: {highWord: 'MAN', color: '#00FFFF'}
4: {highWord: 'otobüs', color: '#00FFFF'}
5: {highWord: 'AĞIR VASITA', color: '#00FFFF'}
6: {highWord: 'ağır vasıta', color: '#00FFFF'}
7: {highWord: 'Ağır vasıta', color: '#00FFFF'}
8: {highWord: 'Ağır Vasıta', color: '#00FFFF'}
这是我匹配我的话的代码块;
let searchRgx = new RegExp(this.highlightWordList.map(item => {
console.log(item)
return item.highWord;
}).join("|"), 'gi');
这是 output 这个代码给了我
/hafif ticari araçlarda|hafif ticari|kamyon|MAN|otobüs|AĞIR VASITA|ağır vasıta|Ağır vasıta|Ağır Vasıta/gi
我在这里画了匹配的单词,但匹配错误
let _this = this
return txt.replace(searchRgx, function (match, offset, string) {
let foundedKeyword = _this.highlightWordList.filter(item => {
return item.highWord.toLowerCase() === match.toLowerCase();
})[0];
if (foundedKeyword == undefined) {
foundedKeyword = {};
foundedKeyword.color = 'white';
}
return `<span style='background-color:${foundedKeyword.color};' >${match}</span>`;
});
例如:当我写“ lookman ”时,我上面的代码也匹配“look man ”这个词中的“ man ”
我想要的是,当我输入"lookman"时,它与"man"不匹配。
我希望我提前问了正确的问题(有规则)谢谢
扩展凯利的评论
您可以添加单词边界\b
。 更新生成正则表达式的行
let searchRgx = new RegExp(this.highlightWordList.map(item => {
console.log(item)
return '\\b(' + item.highWord + ')\\b';
// Another string formatting option: `\\b(${item.highWord})\\b`
}).join("|"), 'gi');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.