我知道有幾種方法可以分爲jQuery中的數組,但我有一個特殊情況: 如果我有,例如這兩個字符串:將字符串分割成兩個部分
"G09.4 What"
"A04.3 A new Code"
當我駁頭通過' '
我可以簡單地選擇前面的代碼[0]
什麼是G09.4
。當我打電話[1]
我得到的文本:What
但是,當我做同樣的與第二個字符串我得到[1]
A
,但我想找回A new Code
。
那麼我怎樣才能檢索每個字符串的代碼和單獨的文本?
我知道有幾種方法可以分爲jQuery中的數組,但我有一個特殊情況: 如果我有,例如這兩個字符串:將字符串分割成兩個部分
"G09.4 What"
"A04.3 A new Code"
當我駁頭通過' '
我可以簡單地選擇前面的代碼[0]
什麼是G09.4
。當我打電話[1]
我得到的文本:What
但是,當我做同樣的與第二個字符串我得到[1]
A
,但我想找回A new Code
。
那麼我怎樣才能檢索每個字符串的代碼和單獨的文本?
使用
var someString = "A04.3 A new Code";
var index = someString.indexOf(" "); // Gets the first index where a space occours
var id = someString.substr(0, index); // Gets the first part
var text = someString.substr(index + 1); // Gets the text part
您可以分割字符串,並推卸返回數組中的第一項。然後加入剩菜,例如
var chunks = "A04.3 A new Code".split(/\s+/);
var arr = [chunks.shift(), chunks.join(' ')];
// arr[0] = "A04.3"
// arr[1] = "A new Code"
我敢打賭,你去炸藥釣魚。這是過火的問題。 – Bitterblue
取而代之的空間拆分的字符串,使用indexOf
和slice
組合:
var s = "A04.3 A new Code";
var i = s.indexOf(' ');
var partOne = s.slice(0, i).trim();
var partTwo = s.slice(i + 1, s.length).trim();
您可以使用match()
並捕獲你通過正則表達式需要什麼:
"G09.4 What".match(/^(\S+)\s+(.+)/)
// => ["G09.4 What", "G09.4", "What"]
"A04.3 A new Code".match(/^(\S+)\s+(.+)/)
// => ["A04.3 A new Code", "A04.3", "A new Code"]
正如你可以看到你想要的兩個項目在[1]
和[2]
返回的數組。
您可以獲取代碼,然後從原始字符串中將其刪除,從而使代碼和字符串都不帶代碼。
var originalString = "A04.3 A new Code",
stringArray = originalString.split(' '),
code,
newString;
code = stringArray[0];
newString = originalString.replace(code, '');
這個怎麼樣:
function split2(str, delim) {
var parts=str.split(delim);
return [parts[0], parts.splice(1,parts.length).join(delim)];
}
或者更高的性能,試試這個:
function split2s(str, delim) {
var p=str.indexOf(delim);
if (p !== -1) {
return [str.substring(0,p), str.substring(p+1)];
} else {
return [str];
}
}
VAR中newstr = 「」;對於(var i = 1; i
DutGRIFF