2

在 javascript 中,我有一个格式为“/john/smith”的字符串。我想得到数组“名字”:“约翰”,“姓氏”:“史密斯”。

js 是否有一些简单的函数可以根据分隔符解析这个字符串?我没有看到任何东西,谷歌除了做一些正则表达式之外什么也没返回。

4

6 回答 6

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

现在ar[1]将包含名字

& ar[2]将包含姓氏

于 2013-06-20T04:21:48.430 回答
2

您可以为此使用 .split() 方法。有关 .split() 的参考,请参阅 MDN:https ://developer.mozilla.org/en-US/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() 返回由提供的分隔符分隔的字符串。第一个“/”字符之前有一个空字符串,所以第一个结果是空的。

于 2013-06-20T04:21:55.430 回答
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"}
于 2013-06-20T04:26:01.010 回答
0

简单的 Javascript拆分方法应该可以工作。

var myOriginalString = '/John/Smith';
var afterSplitArray = myOriginalString.split('/');
var firstName = afterSplitArray[1]; // John
var lastName = afterSplitArray[2]; //Smith

唯一的问题是,如果您的原始字符串以分隔符开头,您必须从 index = 1 开始访问变量,如上例所示。

于 2013-06-20T04:31:50.933 回答
0

split()方法可以解决问题

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

arr[1] 将给出 forstname 而 arr[2] 将给出 secondname

于 2013-06-20T04:23:18.517 回答
0

对于您的特定示例,有几种方法可以做到这一点,因为大多数其他答案会/在开头留下 a 这些将输出正确的结果:

var result = str.match(/[^/]+/g);

或者:

var result = str.split('/').slice(1);
于 2013-06-20T04:26:31.170 回答