Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript上比较字符串时使用通配符_Javascript_String_Compare_Wildcard - Fatal编程技术网

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

在JavaScript上比较字符串时使用通配符,javascript,string,compare,wildcard,Javascript,String,Compare,Wildcard,我需要比较两个字符串,是否有通配符 如果没有通配符,我怎么做?要比较的字符串是子字符串的串联,如用“,”分隔的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.equ

我需要比较两个字符串,是否有通配符

如果没有通配符,我怎么做?要比较的字符串是子字符串的串联,如用“,”分隔的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
使用正则表达式:

var str1=“HHH-H-HHH,OOO-O-OOO”
var str2=“HHH-H-HHH,OOO-U-OOO”
变量rgx1=/HHH-.*-HHH,OOO-O-OOO/
变量rgx2=/HHH-H-HHH,OOO-.*-OOO/
console.log(rgx1.test(str1))//应为TRUE
console.log(rgx2.test(str1))//应为TRUE

console.log(str1==str2)//应该为FALSE
请参阅,而且您编写的代码是Java:JavaScript没有本机的
字符串.prorotype.equals()
方法。@msnford正如Bergi正确指出的那样,
.test()
更好,因为它返回一个布尔值(因此无需
!!
).是的,如果你看到我在
match()
train上的原始评论,你会发现我也训练得太快了。:)