首页 > 解决方案 > 如果条件,javascript中稍微不同的字符串的正则表达式

问题描述

所以我陷入了这个问题的循环,这应该相对容易,问题是我有来自数据库的稍微不同的字符串:

本田 VIP..., 本田 LL Ultra..., 本田 LL..., 本田 LL start 5000i, 本田 LL Ultra 5000i

如果出现的字符串是(Honda VIP...,Honda LL Ultra...,Honda LL...),我在哪里显示 image1.svg , 本田 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';

但返回总是 image1,因为如果落在“Honda LL”或“Honda LL ultra”。如果:

panel.match(/Honda LL\s+start\s+5000i|Honda LL\s+ultra\s+5000i/i)

但没有结果。

有人可以帮我吗?

标签: javascriptregex

解决方案


无论这种语言是什么,看起来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';

推荐阅读