我知道有类似的线程,但我已经尝试了你的建议,但仍然无法解决我的问题。
for(var i = text.length-1; i>=0; i--)
{
if(text.charCodeAt(i) < 42 || text.charCodeAt(i) > 57)
{
text.splice(i,1);
}
}
alert(text);
为什么是警报(文字);没被执行? Splice有问题,请帮帮我。
答案 0 :(得分:3)
这是因为javascript中的字符串没有拼接方法。您需要将其转换为数组。
text = text.split('');
text.splice(i,1);
text = text.join('');
而且,作为一个数组,你不能使用方法charAt但
if(text[i] < 42 || text[i] > 57)
谈到实现这项任务的最佳方式是什么,我宁愿建议以更好的方式看待不同的解决方案,性能明智。
在这里你可以找到一个基准测试,你可以看到如何使用字符串方法 slice 更高效。
答案 1 :(得分:0)
您可能正在寻找.slice()方法。
text.slice(i,1);
答案 2 :(得分:-4)
警报未执行,因为您没有在脚本的开头声明它。
var text = [];
for(var i = text.length-1; i>=0; i--)
{
if(text.charCodeAt(i) < 42 || text.charCodeAt(i) > 57)
{
text.splice(i,1);
}
}
alert(text);