方法1:str.replace 正则匹配法
let str = " 2022-11-01 ";
let newStr = str.replace(/^\s*|\s*$/g, "");
console.log(str); // 2022-11-01
console.log(newStr); //2022-11-01
方法2:str.trim()法
let str = " 2022-11-01 ";
let newStr = str.trim();
console.log(str); // 2022-11-01
console.log(newStr); //2022-11-01
方法3:使用 charAt() subString() indexOf()组合实现。先从头遍历,把前面的空格去掉,在从后面遍历,把后面的空格去掉。最后还要判断是否本身就是一个空格字符串 ' ' .因为空字符走不进去下面的两段遍历。
let str = " 2022-11-01 ";
String.prototype.trim1 = function () {
let str = this,
whitespace = ' ';
for (let i = 0;i<str.length; i++) {
if (whitespace.indexOf(str.charAt(i)) === -1) {
str = str.substring(i);
break;
}
}
for (i = str.length - 1; i >= 0; i--) {
if (whitespace.indexOf(str.charAt(i)) === -1) {
str = str.substring(0, i + 1);
break;
}
}
return whitespace.indexOf(str.charAt(0)) === -1 ? str : '';
}
console.log(str.trim1());//2022-11-01
方法4:利用遍历字符串+slice方法
// js去除头尾空格
let str = " 2020-11-2 "
function trim(str){
let start = 0
let end = 0
for(let i=0;i<str.length;i++){
if(str[i]!=' '){
start = i
break //跳出整个循环,不再继续进行
}
}
for(let i=str.length-1;i>0;i--){
if(str[i]!=' '){
end = i+1
break
}
}
return str.slice(start,end)
}
console.log(trim(str))
slice(start, end) 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
使用 start(包含) 和 end(不包含) 参数来指定字符串提取的部分。
start 参数字符串中第一个字符位置为 0, 第二个字符位置为 1, 以此类推,如果是负数表示从尾部截取多少个字符串。
end 参数如果为负数,-1 指字符串的最后一个字符的位置,-2 指倒数第二个字符,以此类推。