我有一个代码,我将在下面举一个小例子。虽然它的作用是获取用户名,然后检查其他上下文。然后我检查它们与彼此之间的关系,除了这一点之外,我的整个脚本都有效,而且没有给它留有余地。
var getName= $('#element').text(),
uName =getName.replace("Welcome ",""),
loggedIn = newMember.replace(membersList,"");
if(loggedIn !== uName)
{
//run other codes
}
虽然当我这样做时它仍在运行代码。我在写条件错误吗?
答案 0 :(得分:2)
从您的问题标题中,我假设您关注的是loggedIn !== uName
的字符串比较受到其中一个或哪个的前导和/或尾随空格的影响。
您需要使用trim()
,并且在使用之前验证原型的存在是明智的(请参阅this answer获取解释)。
您的代码现在是:
if(!String.prototype.trim) {
String.prototype.trim = function () {
return this.replace(/^\s+|\s+$/g,'');
};
}
var getName= $('#element').text(),
uName =getName.replace("Welcome ","").trim(),
loggedIn = newMember.replace(membersList,"").trim();
if(loggedIn !== uName)
{
//run other codes
}