JavaScript无法删除字符串末尾的字符
JavaScript cant remove character at end of string
这是为了其他目的,但我举了一个例子来说明这个问题。注意:我想删除所有出现的"o",巧合的是,我似乎只想删除字符串末尾的字符——我认为无法删除最后一个字符存在错误(replace
替换了所有出现的字符)。
var s = "hollo";
console.log(s);
s = s.replace("o", "");
console.log(s)
这种情况发生在Chrome和Firefox上,它们是我测试过的唯一浏览器。
我在控制台中得到这个
hollo
hllo
它为什么要这样做?
编辑:这似乎解决了问题:
if (s.lastIndexOf("o") != -1) s = s.substr(0, s.length - 1);
但我仍然想知道为什么会发生这种情况。
这是因为replace
只删除它看到的第一个匹配。若要删除所有引用,请改用正则表达式。无论情况(i)如何,这一个都全局地删除了"o"(g)。
s = s.replace(/o/gi,'');
在控制台中测试它,它应该会给你"hll":
'hollo'.replace(/o/gi,'');
我不希望您从字符串中删除所有'o'。你们也可以为其创建原型。你想使用类似于's.ReplaceAll("o",")'.
function ReplaceAll(str,oldchar,newchar)
{
if(str.indexOf(oldchar) != -1)
{
str = str.replace(oldchar, newchar);
str = ReplaceAll(str,oldchar,newchar);
}
else
{
return str;
}
}
var s = "hollo";
s = ReplaceAll(s,"o", "");
如果我不理解你的要求,请告诉我。
相关文章:
- 如何将字符串拆分为字符,但在javascript中保留空格
- 如何显示字符串中最多 200 个字符
- 我想在Javascript中探索类似C语言的字符串的整个字符
- 如何用jquery替换字符串中可能变化的字符
- 通过跳过拆分字符在 javascript 中拆分字符串
- 使用正则表达式匹配长度为六个字符的字母数字字符串
- 字符串替换-不支持格式字符'}'
- 到UpperCase字符串Javascript中的特定字符索引
- 用类javascript包装span标记中字符串中的字符索引
- 将字符串分组为n个字符的块,并应用替换
- 如何检查一个字符串的所有字符是否都存在于另一个字符串中
- 在字符串列表中搜索任何出现的单词,如果单词的第一个字符匹配,则高亮匹配单词.Javascript正则表达式
- Javascript-正则表达式,用于在未转义字符上拆分字符串,例如|,但忽略|
- Regex-从字符第N次出现到字符串末尾的匹配
- Visual Studio 2010跳转到下一个任意字符/字符串
- 估计存储在 localStorage (Javascript) 中的 10,000 个字符字符串的大小
- 字符字符串中最后一个单词的第一个字母
- 匹配任何字符字符串的正则表达式,最多为“/”Javascript
- 将特殊字符字符串到 JSON 字符串化非法令牌中
- 在javascript中计算精确的字符字符串高度