在比较JavaScript上的字符串时使用通配符

时间:2017-11-15 20:43:17

标签: javascript string compare wildcard

我需要比较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

1 个答案:

答案 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




正则表达式中的.*运算符匹配任何内容,因此这是您的通配符。请注意,这种方式您必须区分值和模式。也就是说,您要检查的字符串以及要对其进行检查的模式(此处由正则表达式表示)。

如果要与模式进行比较,请使用正则表达式(前两个示例)。如果您要比较两个值,只需直接使用===运算符(最后一个示例)。