我知道有几种方法可以分为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