以删除一个字符串中的空格为例。
- 删除一个字符串中的所有指定字符
var stripAll = function(s, d) {
var str = "";
var arr = new Array();
for (var i = 0; i < s.length; i++) {
if (s[i] !== d) {
arr.push(i);
}
}
for (var j = 0; j < arr.length; j++) {
str = str + s[arr[j]];
}
console.log("\"" + str + "\"");
return str;
}
// 测试函数
stripAll(' hello', " ");
stripAll(' h ello ', " ");
stripAll('', " ");
stripAll(' ', " ");
得到结果:
"hello"
"hello"
""
""
- 删除一个字符串开头的指定字符
var strip_left = function(s) {
while (s.startsWith(" ")) {
s = s.slice(1);
}
console.log("\"" + s + "\"");
return s;
}
// 测试函数
strip_left(' hello');
strip_left(' hello ');
strip_left('');
strip_left(' ');
得到结果:
"hello"
"hello "
""
""
- 删除一个字符串结尾的指定字符
- 方法一
var strip_right = function(s) {
var str = s;
for (var i = s.length - 1; i >= 0; i--) {
var char = s[i];
if (char == ' ') {
str = s.slice(0, i);
} else {
break;
}
}
console.log("\"" + str + "\"");
return str;
}
// 测试函数
strip_right(' hello');
strip_right(' hello ');
strip_right('');
strip_right(' ');
得到结果:
" hello"
" hello"
""
""
- 方法二
var strip_right = function(s) {
var index = s.length
for (var i = s.length - 1; i >= 0; i--) {
var char = s[i];
if (char != ' ') {
index = i + 1;
break;
}
if (i == 1) { // 纯空格的情况
index = 0;
break;
}
}
console.log("\"" + s.slice(0, index) + "\"");
return s.slice(0, index + 1)
}
// 测试函数
strip_right(' hello');
strip_right(' he llo ');
strip_right('');
strip_right(' ');
得到的结果:
" hello"
" he llo"
""
""
- 删除一个字符串开头和结尾的指定字符
var strip_left = function(s, d) {
while (s.startsWith(d)) {
s = s.slice(1);
}
return s;
}
var strip_right = function(s, d) {
var str = s;
for (var i = s.length - 1; i >= 0; i--) {
var char = s[i];
if (char == d) {
str = s.slice(0, i);
} else {
break;
}
}
return str;
}
var strip = function(s, d) {
strip_left(strip_right(s, d), d);
console.log("\"" + strip_left(strip_right(s, d), d) + "\"");
return strip_left(strip_right(s, d), d);
}
// 测试函数
strip(' hello', " ");
strip(' he llo ', " ");
strip('', " ");
strip(' ', " ");
得到结果:
"hello"
"he llo"
""
""