通过公共分隔符在javascript中解析字符串

时间:2013-06-20 04:19:24

标签: javascript regex string parsing

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

js是否有一些简单的函数来根据分隔符解析这个字符串?除了做一些正则表达式之外,我还没有看到任何谷歌和谷歌没有任何回报。

6 个答案:

答案 0 :(得分:3)

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

现在 ar [1] 将包含名字

&安培; ar [2] 将包含姓氏

答案 1 :(得分: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("/");

件[1]包含“John”,件[2]包含“Smith”。请注意,那些索引数组是1和2,而不是0和1. pieces [0]包含“”因为split()返回由提供的分隔符分隔的字符串。在第一个“/”字符前面有一个空字符串,因此第一个结果为空。

答案 2 :(得分: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"}

答案 3 :(得分:0)

split()方法可以解决问题

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

arr [1]将给出forstname,而arr [2]将给出第二个名字

答案 4 :(得分:0)

为您的特定示例执行此操作的几种方法,因为大多数其他答案将在开头留下/,这些将输出正确的结果:

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

或者:

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

答案 5 :(得分:0)

简单的Javascript split方法应该有效。

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

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