小jquery解析器

时间:2010-06-15 09:27:25

标签: javascript

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

4 个答案:

答案 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替代方案)。