有一种情况,我收到一个包含以下特殊字符的字符串:
<!@#$%^&*()_+|}{":?></.,';][=-`~DS0>
在JavaScript中使用double等于(==)运算符对此字符串执行比较操作时,它不会产生适当的结果。
虽然两个字符串都包含相同的指定字符串,但比较操作不会返回true。
我的案例在JavaScript中会有点像这样翻译:
var strValue = "<!@#$%^&*()_+|}{":?></.,';][=-`~DS0>";
var itrValue = "<!@#$%^&*()_+|}{":?></.,';][=-`~DS0>";
if (itrValue == strValue) {
alert("True");
} else {
alert("false");
}
答案 0 :(得分:3)
当且仅当字符串相同时才返回true。如果要确定字符串是否在另一个字符串中,可以使用indexof:http://www.quirksmode.org/js/strings.html#indexof
答案 1 :(得分:2)
首先:我认为你需要使用反斜杠(类似于\“)来转义那些引号。
第二:据我所知,这两个字符串不相同。您可能想要尝试更像indexof(W3学校参考)的内容,正如教皇所说的那样。
答案 2 :(得分:0)
您可以使用indexOf方法,如果无法找到索引作为上述状态的两个答案,则返回-1。
稍微不同(不完全确定你是否正在寻找这个,indexOf可能是你最好的选择)是使用String.match或String.split方法。如果没有匹配,String.match将返回null,否则它将返回包含您的字符串的所有元素的数组(EG:
var str = "Test123 ABC Test 123Test ABC"
var macthes = str.match("/Test/g") // You can have any regular expression here
document.write(matches[0])
document.write(matches[1])
document.write(matches[2])
将生成Test123 Test 123Test String.split将生成一个以初始字符串分割的字符串数组。
答案 3 :(得分:0)
我刚刚在字符串中转义了双引号,我从true
运算符中得到了一个很好的==
...
var strValue = "<!@#$%^&*()_+|}{\":?></.,';][=-`~DS0>";
var itrValue = "<!@#$%^&*()_+|}{\":?></.,';][=-`~DS0>";
alert(strValue == itrValue)