簡體   English   中英

Javascript - 如何刪除字符串開頭的空格

[英]Javascript - How to remove the white space at the start of the string

我想刪除字符串開頭的空格它應該只刪除字符串開頭的空格,其他空格應該在那里。

var string=' This is test';

這就是你想要的:

function ltrim(str) {
  if(!str) return str;
  return str.replace(/^\s+/g, '');
}

也適用於 IE8+ 中的普通修剪:

function trimStr(str) {
  if(!str) return str;
  return str.replace(/^\s+|\s+$/g, '');
}

並用於修剪右側:

function rtrim(str) {
  if(!str) return str;
  return str.replace(/\s+$/g, '');
}

或者作為 polyfill:

// for IE8
if (!String.prototype.trim)
{
    String.prototype.trim = function ()
    {
        // return this.replace(/^\s+|\s+$/g, '');
        return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
    };
}

if (!String.prototype.trimStart)
{
    String.prototype.trimStart = function ()
    {
        // return this.replace(/^\s+/g, '');
        return this.replace(/^[\s\uFEFF\xA0]+/g, '');
    };
}

if (!String.prototype.trimEnd)
{
    String.prototype.trimEnd = function ()
    {
        // return this.replace(/\s+$/g, '');
        return this.replace(/[\s\uFEFF\xA0]+$/g, '');
    };
}

筆記:
\\s:包括空格、制表符\\t、換行符\\n 和一些其他稀有字符,例如\\v、\\f 和\\r。
\:Unicode 字符“零寬度無間斷空間”(U+FEFF)
\\xA0:ASCII 0xA0(160:不間斷空格)不被識別為空格字符

嘗試使用 javascript 的trim()函數,基本上它會從字符串中刪除前導和尾隨空格。

var string=' This is test';
string = string.trim();

演示

因此,根據評論區中發生的對話,為了實現向后瀏覽器兼容性,只需使用 jquery 的$.trim(str)

var string=' This is test';    
string = $.trim(string)

您可以使用 String.prototype.trimStart()。 像這樣:

myString=myString.trimStart();

如果你想修剪尾巴,你可以使用:

myString=myString.trimEnd();

請注意,IE 不支持這 2 個功能。 對於 IE,您需要為它們使用 polyfill。

您應該使用javascript 修剪功能

var str = "       Hello World!        ";
alert(str.trim()); 

此函數還可以從字符串的末尾刪除空格。

.trimLeft()可用於此目的。

const str = "   string   ";
console.log(str.trimLeft());     // => "string   "

只是一種不同且不太有效的方式來做到這一點

 var str = " My string"; function trim() { var stringStarted = false; var newString = ""; for (var i in str) { if (!stringStarted && str[i] == " ") { continue; } else if (!stringStarted) { stringStarted = true; } newString += str[i]; } return newString; } console.log(trim(str));

我真的很確定這對其他任何事情都不起作用,也不是最理想的解決方案,但這只是我想到的

最簡單的解決方案:(ES10 特性trimStart())

var string= 'This is a test';
console.log(string.trimStart());
var string=' This is test';    
$.trim(string);

您想刪除字符串開頭的空格(即空格)。 所以,不能使用標准的 jquesy .trim() 您可以使用正則表達式查找並替換字符串開頭的空格。

嘗試這個:

.replace(/^\s+/g, "")

閱讀這篇文章

嘗試這個:

var string='    This is test   ';
alert(string.replace(/^\s+/g, ""));

工作示例

或者,如果您想從開頭和結尾刪除空格,請使用.trim()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM