所以我正在处理这个问题,这应该相对容易,问题是我有来自数据库的稍微不同的字符串:
本田VIP。。。,本田LL超。。。,本田LL。。。,本田LL启动5000i,本田LL超5000i
如果字符串是(Honda VIP…,Honda LL Ultra…,HondaLL…(或者我现在的图像2.svg是来的图像正是(本田LL启动5000i,本田LL超5000i(
我的代码是:
...
else if (panel.match(/Honda VIP|Honda LL Ultra|Honda LL/i)) {
return 'asset/image1.svg';
else if (panel.match(/Honda LL start 5000i|Honda LL ultra 5000i/i))
return 'asset/image2.svg';
但回报总是图像1,因为如果落在"本田LL"或"本田LL ultra"。我试着在第二个else if的空白处使用\s+:
panel.match(/Honda LLs+starts+5000i|Honda LLs+ultras+5000i/i)
但没有结果。
有人能帮我吗?
无论这种语言是,第一个正则表达式末尾的Honda LL
似乎与第二个正则表达式匹配的所有内容都匹配。
交换条件,以便首先匹配更具体的模式:
else if (panel.match(/Honda LL start 5000i|Honda LL ultra 5000i/i))
return 'asset/image2.svg';
else if (panel.match(/Honda VIP|Honda LL Ultra|Honda LL/i)) {
return 'asset/image1.svg';
顺便问一下,我们可以用一个正则表达式以一些字符串开头,然后在前面有变体吗?我在试
} else if (panel.match(/^(Honda|.*B16|B18|B20|Vtec)$/i)) {
return 'image.svg';
就像我想抓住从本田B16、本田B16或本田B18开始的字符串一样。。我的代码甚至没有被击中。但是/^/$不应该工作并捕获第一个字符串,然后检查其他字符串吗?
我试过
} else if (panel.match(/^(Honda)$.*B16|B18|B20|Vtec/i)) {
return 'image.svg';
但如果我像"CRX B16"那样击球,它会被击中,但不应该,因为它不是从本田开始的。。。