input是一个字符串(var str),如下所示:
"<<hello there//abcd//1234>>"
我想知道如何最好地提取信息以获得此信息:
var a = "hello there";
var b = "abcd";
var c = 1234;
案例a:在&lt;&lt;之后选择所有内容直到第一个// 案例b:首先选择所有内容//直到第二个// case c:在第二个//之后选择所有内容//直到&gt;&gt;
有人知道一个简单的解决方案吗? THX
答案 0 :(得分:4)
如果您可以确定内部字符串不包含/
,>
或<
,则可以使用单行代码执行此操作:
"<<hello there//abcd//1234>>".match(/[^<>/]+/g)
// -> ["hello there", "abcd", "1234"]
答案 1 :(得分:1)
使用'//'作为分隔符将其拆分为数组。然后,您有一个包含三个元素的数组。然后对于第一个元素使用substring去除前两个字符,对于最后一个元素,我们再次使用substring去除最后两个字符。
这使用javascript而不是jquery
答案 2 :(得分:1)
var myOldString ="<<hello there//abcd//1234>>"
var myNewString = myOldString.replace("<<", '');
myNewString = myOldString.replace(">>", '');
var arrayofstring = myNewString .split("///")
var a = arrayofstring[0];
var b = arrayofstring[1];
var c = arrayofstring[2];
答案 3 :(得分:1)
var value = "<<hello there//abcd//1234>>";
value = value.substring(2, value.length-2);
var array = value.split("//");
var a = array[0];
var b = array[1];
var c = array[2];
或者代替子字符串,您可以使用value = value.slice(2, -2);
(感谢
Andy E's head替代方案)。