使用通用分隔符在JavaScript中解析字符串

3
在JavaScript中,我有一个形如“/john/smith”的字符串。 我想获得数组“first-name”:“john”,“last-name”:“smith”。
JS是否有一些基于分隔符解析此字符串的简便函数? 我没有看到任何内容,并且谷歌除了进行一些正则表达式之外什么都没返回。
6个回答

3
var str="/john/smith"
var ar=str.split("/");

现在 ar[1] 将包含 firstname

& ar[2] 将包含 lastname


2
您可以使用.split()方法来实现此操作。请参考MDN中的.split()方法:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/split
它非常简单易用。
var namestring = "/John/Smith";
var pieces = namestring.split("/");
pieces[1]包含"John",pieces[2]包含"Smith"。请注意,这些索引数组是1和2,而不是0和1。 pieces[0]包含"",因为split()返回由提供的分隔符分隔的字符串。在第一个“/”字符之前有一个空字符串,因此第一个结果为空。

2
这样的吗?
var str = "/john/smith";

//empty is here because if you split by / you'll get ["", "john", "smith"]
var getObject = function(empty, first, last) {
    //You could traverse arguments, witch will have every match in an "array"
    return {
       first_name: first,
       last_name: last
    };
}

firstAndLastName = getObject.apply(null, str.split('/')); //Object {first_name: "john", last_name: "smith"}

0

split()方法就可以搞定了

var str="/john/smith"
var arr=str.split("/");

arr[1]将提供名字,而arr[2]将提供姓氏


0
有几种方法可以针对您的特定示例进行操作,考虑到大多数其他答案在开头会留下一个/,以下方法将输出正确的结果:
var result = str.match(/[^/]+/g);

或者:

var result = str.split('/').slice(1);

0
简单的Javascript split方法应该可以工作。
var myOriginalString = '/John/Smith';
var afterSplitArray = myOriginalString.split('/');
var firstName = afterSplitArray[1]; // John
var lastName = afterSplitArray[2]; //Smith

唯一的问题是,如果您的原始字符串以分隔符开头,则必须从索引=1开始访问变量,就像上面的示例一样。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接