cha*_*imp 29 javascript string compare
以下代码有时如何评估为false?
(transport.responseText == '1' ||
transport.responseText == 'CARD_VALID')
Run Code Online (Sandbox Code Playgroud)
我的JavaScript代码:
if (transport.responseText == '1' ||
transport.responseText == 'CARD_VALID') {
// do something.
}
else if (transport.responseText == 'CARD_INVALID' ||
transport.responseText == 'INVALID_CHECKSUM') {
// do something else....
}
else {
new Ajax.Request('/report_error.php?responseText='+transport.responseText);
// report error to user
}
Run Code Online (Sandbox Code Playgroud)
==当字符串相同时,什么可能导致JavaScript字符串比较返回false?
小智 49
Double equals是在Javascript中比较字符串的合适方法,它返回false然后在一个字符串的左侧或右侧可能有空格.
放在.trim()字符串的末尾,我的比较应该开始工作:
var panel = response.substr(0, response.indexOf("<")).trim();
if(panel == "combo"){
//do something
}
Run Code Online (Sandbox Code Playgroud)
Rob*_*ert 13
我有一个类似的问题,两个明显相同的字符串不相等,我正在试图解决它,所以我这样做:
for (var c=0; c<string_1.length; c++) {
if (string_1.charCodeAt(c) != string_2.charCodeAt(c)) {
alert('c:'+c+' '+string_1.charCodeAt(c)+'!='+string_2.charCodeAt(c));
valid = false;
}
}
Run Code Online (Sandbox Code Playgroud)
我发现一个字符串上的最后一个字符是10,而另一个字符串的最后一个字符是13,我认为两个字符串都是空终止,但它们不是.
A1 = "speed"
A2 = "speed"
if(A1 == A2) => Error !!!
Run Code Online (Sandbox Code Playgroud)
在控制台中使用此测试:
escape("speed")
Run Code Online (Sandbox Code Playgroud)
结果:“速度”
escape(A1)
Run Code Online (Sandbox Code Playgroud)
结果:“ speed%0D” =>这是%0D的问题!!!
escape(A2)
Run Code Online (Sandbox Code Playgroud)
结果:“速度” =>确定!
使用正确的代码:
if(A1.slice(0, -1) == A2) This is OK!
Run Code Online (Sandbox Code Playgroud)
我遇到了同样的问题,我注意到我正在比较两个对象
为了解决这个问题,我不得不使用
JSON.stringify(user._id) === JSON.stringify(userId) // true
Run Code Online (Sandbox Code Playgroud)
我建议您最好使用标准化“NFKC”或“NFKD”,因为它们似乎将不间断空间标准化为常规空间。
所以你可以将代码编写为:-
string1.normalize("NFKC") === string2.normalize("NFKC")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
81079 次 |
| 最近记录: |