我在C#编码训练营中,我们正在做一周的JavaScript。这里的问题是,如果给定的字符串以" x"开头或结尾?你省略了那个x。例如:" xHix"成为"嗨"," xHixx"将来" Hix"。我的代码就是这个
function stripX(str){
if (str.substr(0,1) === "x")
return str.substr(1,str.length);
if (str.substr(str.length-1,1) === "x")
return str.substr(0,str.length-1);
return str;
}
我在C#中试过它并且工作正常,为什么它不能在这里工作?!感谢
答案 0 :(得分:2)
您需要在return
之前修改两种情况的字符串:
function stripX(str){
if (str.substr(0,1) === "x")
str = str.substr(1,str.length);
if (str.substr(str.length-1,1) === "x")
str = str.substr(0,str.length-1);
return str;
}
答案 1 :(得分:1)
你可以尝试
function stripX(str){
return str.substring(
str[0] == 'x',
str.length - (str[str.length-1] == 'x')
);
}
答案 2 :(得分:0)
如果代码在行的开头找到x,则返回代码,因此不会替换行末尾的x。首先使用str = str.substr(...
另一种选择:正则表达式可用于匹配字符串的开头(^)或字符串的结尾($),允许在一行中完成。
function stripX(str) {
return str.replace(/^x/, "").replace(/x$/, "");
}
alert(stripX("xHixx"));