删除 space 而不使用字符串方法 trim
Remove space without using string method trim
如何删除所有左边的 space 而不删除字符串的 between & 右边的 space?而且当我更改 str 的值时,结果将是相同的。只会去掉左边的space
function trimLeftSpace() {
var str = " Angry Bird ";
var splitTrim = str.split('');
var trimStr = "";
for (var index = 0; index < splitTrim.length; index++) { //trim left space
if(splitTrim[index] != " ") {
trimStr += str[index];
}
}
return trimStr;
}
您可以尝试使用正则表达式替换:
var str = " Angry Bird ";
str = str.replace( new RegExp("^\s+", "gm"),"");
console.log('"' + str + '"');
到trim字符串开头,使用简单的regex
替换字符串开头的空格:
var str = " Angry Bird ";
function trimLeftSpace(str) {
return str.replace(/^\s+/, '');
}
console.log('"' + trimLeftSpace(str) + '"');
或者只使用 .trimStart()
:
var str = " Angry Bird ";
function trimLeftSpace(str) {
return str.trimStart();
}
console.log('"' + trimLeftSpace(str) + '"');
您当前的解决方案创建了一个新字符串,其中包含原始字符串的所有非 space 字符,您需要在找到非 space 字符后立即停止寻找 space =19=]字符。这是一个例子:
function trimLeftSpace(str) {
var doneTrimming = false
var ret = ""
for (var index = 0; index < str.length; index++) {
if(str[index] !== ' '){
doneTrimming = true
}
if(doneTrimming){
ret += str[index]
}
}
return ret;
}
var result = trimLeftSpace(" Angry Bird ");
console.log("|"+result+"|");
这将删除字符串左侧的所有空格:
function trimLeftSpace(str) {
var result = "";
for(var i = 0; i < str.length; i++) {
if(str[i] != " ") {
return str.slice(i);
break;
} else {
result += str[i];
}
}
return result;
}
console.log(trimLeftSpace(" Angry Birds Angry Birds"));
试试这个
function trimLeftSpace(str) {
return str.replace(/\s+$/, '')
}
var result = trimLeftSpace(" Angry Bird ");
console.log("|"+result+"|");
如果您想使用函数而不是其他答案中的正则表达式解决方案,则创建一个函数来查找第一个非 space 字符,然后使用 slice
仅剪切它后面的部分字符串:
function customTrim(str) {
for(var i = 0; i < str.length; i++) {
if(str.charAt(i) !== " ") {
return str.slice(i);
}
}
}
var res = customTrim(" Snake Shot ");
console.log('"' + res + '"');
备注:
- 这只会查找 spaces
' '
。如果您想查找制表符 '\t'
、换行符 '\n'
,...然后只需将它们添加到 if
测试(用 &&
分割它们)。
- 如果传递空字符串或仅传递 space 字符串,则
undefined
被 return 编辑,如果您不想那样,则只需 return 一个空字符串函数底部的字符串,使其成为默认 return 值。
您可以尝试使用正则表达式替换:
let variable = "hello world";
let removeRegex = /^\s+|\s+$/g;
let removeSpace = variable.replace(removeRegex,"");
console.log(removeSpace);
如何删除所有左边的 space 而不删除字符串的 between & 右边的 space?而且当我更改 str 的值时,结果将是相同的。只会去掉左边的space
function trimLeftSpace() {
var str = " Angry Bird ";
var splitTrim = str.split('');
var trimStr = "";
for (var index = 0; index < splitTrim.length; index++) { //trim left space
if(splitTrim[index] != " ") {
trimStr += str[index];
}
}
return trimStr;
}
您可以尝试使用正则表达式替换:
var str = " Angry Bird ";
str = str.replace( new RegExp("^\s+", "gm"),"");
console.log('"' + str + '"');
到trim字符串开头,使用简单的regex
替换字符串开头的空格:
var str = " Angry Bird ";
function trimLeftSpace(str) {
return str.replace(/^\s+/, '');
}
console.log('"' + trimLeftSpace(str) + '"');
或者只使用 .trimStart()
:
var str = " Angry Bird ";
function trimLeftSpace(str) {
return str.trimStart();
}
console.log('"' + trimLeftSpace(str) + '"');
您当前的解决方案创建了一个新字符串,其中包含原始字符串的所有非 space 字符,您需要在找到非 space 字符后立即停止寻找 space =19=]字符。这是一个例子:
function trimLeftSpace(str) {
var doneTrimming = false
var ret = ""
for (var index = 0; index < str.length; index++) {
if(str[index] !== ' '){
doneTrimming = true
}
if(doneTrimming){
ret += str[index]
}
}
return ret;
}
var result = trimLeftSpace(" Angry Bird ");
console.log("|"+result+"|");
这将删除字符串左侧的所有空格:
function trimLeftSpace(str) {
var result = "";
for(var i = 0; i < str.length; i++) {
if(str[i] != " ") {
return str.slice(i);
break;
} else {
result += str[i];
}
}
return result;
}
console.log(trimLeftSpace(" Angry Birds Angry Birds"));
试试这个
function trimLeftSpace(str) {
return str.replace(/\s+$/, '')
}
var result = trimLeftSpace(" Angry Bird ");
console.log("|"+result+"|");
如果您想使用函数而不是其他答案中的正则表达式解决方案,则创建一个函数来查找第一个非 space 字符,然后使用 slice
仅剪切它后面的部分字符串:
function customTrim(str) {
for(var i = 0; i < str.length; i++) {
if(str.charAt(i) !== " ") {
return str.slice(i);
}
}
}
var res = customTrim(" Snake Shot ");
console.log('"' + res + '"');
备注:
- 这只会查找 spaces
' '
。如果您想查找制表符'\t'
、换行符'\n'
,...然后只需将它们添加到if
测试(用&&
分割它们)。 - 如果传递空字符串或仅传递 space 字符串,则
undefined
被 return 编辑,如果您不想那样,则只需 return 一个空字符串函数底部的字符串,使其成为默认 return 值。
您可以尝试使用正则表达式替换:
let variable = "hello world";
let removeRegex = /^\s+|\s+$/g;
let removeSpace = variable.replace(removeRegex,"");
console.log(removeSpace);