我需要比较2个字符串,是否有任何通配符?
如果没有通配符,我该怎么做?要比较的字符串是子串的连接,如HHH-H-HHH,由','分隔。
示例:
var str1 = "HHH-H-HHH,OOO-O-OOO"
var str2 = "HHH-$-HHH,OOO-O-OOO"
var str3 = "HHH-H-HHH,OOO-$-OOO"
var str4 = "HHH-H-HHH,OOO-U-OOO"
str1.equals(str2) // SHOULD BE TRUE
str1.equals(str3) // SHOULD BE TRUE
str1.equals(str4) // SHOULD BE FALSE
答案 0 :(得分:2)
使用正则表达式:
var str1 = "HHH-H-HHH,OOO-O-OOO"
var str2 = "HHH-H-HHH,OOO-U-OOO"
var rgx1 = /HHH-.*-HHH,OOO-O-OOO/
var rgx2 = /HHH-H-HHH,OOO-.*-OOO/
console.log(rgx1.test(str1)) // SHOULD BE TRUE
console.log(rgx2.test(str1)) // SHOULD BE TRUE
console.log(str1 === str2) // SHOULD BE FALSE

正则表达式中的.*
运算符匹配任何内容,因此这是您的通配符。请注意,这种方式您必须区分值和模式。也就是说,您要检查的字符串以及要对其进行检查的模式(此处由正则表达式表示)。
如果要与模式进行比较,请使用正则表达式(前两个示例)。如果您要比较两个值,只需直接使用===
运算符(最后一个示例)。