【发布时间】:2020-08-29 19:25:45
【问题描述】:
我需要比较来自两个不同数据源的两个字符串。在一个系统中,他们可以输入单词 and,而在另一个系统中,它可能是 &,或者相反,或者它们可能是相同的。
目前我正在使用
if (thisAffiliation.search(new RegExp(department, "i")) > 0) {
validatedDepartment = true
}
if (thisAffiliation.search(new RegExp(department.replace('and','&'), "i")) > 0) {
validatedDepartment = true
}
if (thisAffiliation.search(new RegExp(department.replace('&','and'), "i")) > 0) {
validatedDepartment = true
}
有没有办法可以将三个 if 语句合二为一?
补充资料:
如果满足以下条件,我需要验证部门 = true:
Smith and Jones = Smith & Jones
Smith and Jones = Smith and Jones
如果是的话
Smith & Jones = Smith & Jones
Smith & Jones = Smith and Jones
我无法控制 and 或 & 出现在哪里
【问题讨论】:
-
...或者您可以创建一个正则表达式来处理所有三个搜索。
-
如果 (thisAffiliation.search(new RegExp(department, "i")) > 0 || thisAffiliation.search(new RegExp(department.replace('and','&'), "i")) > 0 || thisAffiliation.search(new RegExp(department.replace('&','and'), "i")) > 0) { validDepartment = true } 但为了便于阅读,我认为原件是更好
-
而且我不知道如何使用 RegEx,所以它不认为它是一个循环 - 改变 & for 和再回来。如果降级问题的人可以提出一个智能的解决方案,我将不胜感激
-
所以你想接受一个是另一个的子字符串,但不相等?
标签: javascript regex vue.js