我不得不將split()
中的一個大字符串轉換爲數組,無論它的工作方式如何,現在我在每個元素之前留下一個空格。刪除每個數組元素開頭的空格
例如:
var array = [" hello"," goodbye"," no"];
我怎樣才能擺脫呢?根據要求
拆分代碼:
var depots = v.innerHTML.split(',');
我不得不將split()
中的一個大字符串轉換爲數組,無論它的工作方式如何,現在我在每個元素之前留下一個空格。刪除每個數組元素開頭的空格
例如:
var array = [" hello"," goodbye"," no"];
我怎樣才能擺脫呢?根據要求
拆分代碼:
var depots = v.innerHTML.split(',');
循環遍歷每個數組元素和修剪。至於像下面
for (int i = 0; i < array.length; i++)
trimmedArray[i] = array[i].trim();
不要使用Array#map()
改變每個元素的數組,中時,你可以從字符串本身通過分隔符分裂時,它刪除空格。
使用String#trim()
與String#split()
與正則表達式
str.trim().split(/\s*,\s*/)
正則表達式\s*,\s*
將匹配逗號通過任何數量包圍(包括零)的空格。
現場演示:
var regex = /\s*,\s*/;
document.getElementById('textbox').addEventListener('keyup', function() {
document.getElementById('result').innerHTML = JSON.stringify(this.value.trim().split(regex));
});
<input type="text" id="textbox" />
<pre id="result"></pre>
trim()
將刪除字符串,並split
用正則表達式,\s*
的開頭和結尾的空格會分裂以逗號字符串後跟任意數量的空間。
使用帶有全局標誌的String#match
的否定RegEx也可以實現相同的結果。
str.match(/[^,\s]+/g)
爲什麼
map()
不應該使用?
在這種情況下使用map
需要額外的開銷。首先,split
字符串,
,然後遍歷數組的每個元素,並使用trim
刪除前導和尾隨空格,然後更新數組。這比使用帶有上述RegEx的split
慢一點。
您需要這兩個jQuery函數:
1)通過與編輯能力的項目數組元素迭代: http://api.jquery.com/jquery.map/
2)刪除開始和結束字符串空格: http://api.jquery.com/jQuery.trim/
使用它們這樣:
array = $.map(array, function(value) { return value.trim();});
入住此的jsfiddle: https://jsfiddle.net/L00eyL4x/49/
怎麼樣這種情況下' 「測試,測試,測試,FF FF,ffdf d,DF」 .trim()分裂(/ \ S * /) ' –
@亞歷山大作品完美! OP想要什麼? - >'v.innerHTML.split(',');'然後'我怎樣才能擺脫空格?'上面給了我輸出'[「test」,「test」,「test」,「ff ff 「,」ffdf d「,」df「]'這是OP想要的。 – Tushar
不完美''ffdf d「' - 你可以看到'd'後面有空格。無論如何,我已經寫了評論作者看看你的解決方案,我認爲這是好的,但是需要知道作者想要什麼。 –