javascript - 有条件地将字符串拆分为数组

标签 javascript jquery regex

我有一小段代码需要将字符串拆分为 javascript 对象。

生成的对象需要看起来像这样:

var myObject = {
valueOne: value,
valueTwo: value,
arrayOfValues: [values] 
}

需要转换的字符串有两种不同的格式。这些格式看起来像:

1) “我的值是 ('1','2','3')” --这将被翻译成:

var myObject = {
valueOne: myValues,
valueTwo: are,
arrayOfValues: [1,2,3] 
}

或者 2) “MyValue="1"" --这将被翻译成:

var myObject = {
valueOne: myValue,
valueTwo: =,
arrayOfValues: [1] 
}

我知道我可以像这样拆分这个字符串:

var arr[] = myString.split(" ");

但是根据字符串的构成决定使用哪个拆分器,然后将其转换为 javascript 对象,这对我来说是一个未知的世界。

感谢您的帮助。

编辑 -- 我在示例编号

中犯了一个小错误

我对其进行了更新,使其正确无误。 -- 我收到的字符串格式为:

`"MyValue="1""`

samy-delux,感谢您的帮助!效果很好,但是对第二个字符串的更改破坏了您的示例。 (对不起,我打错了字符串的格式。)

我正在尽最大努力学习正则表达式。但是还没有足够的知识来解决这个问题。

最佳答案

给你(http://jsfiddle.net/VBmb8/):

function parse(str) {
    var match = str.match(/(\w+)\s?([\w=]+)\s?\('(.+)'\)/);

    return {
        valueOne: match[1],
        valueTwo: match[2],
        arrayOfValues: match[3].split("','")
    };
}

* 编辑后 *

http://jsfiddle.net/VBmb8/2/

function parse(str) {
    var match = str.match(/(\w+)\s?([\w=]+)\s?\(?['"](.+)['"]\)?/);

    return {
        valueOne: match[1],
        valueTwo: match[2],
        arrayOfValues: match[3].split("','")
    };
}

关于javascript - 有条件地将字符串拆分为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13364127/

相关文章:

javascript - Redux 商店没有更新

javascript - 创建具有两(或更多)列的表,每一列具有不同的 ng-repeat

javascript - jQuery只能在alert之后使用值

mysql - MySQL中有正则表达式替换的功能吗?

c# - 如何使用正则表达式匹配字符串中的多个单词?

javascript - 从字符串中的数组中查找单词,仅限整个单词(带有希伯来语字符)

javascript - 从 Controller 调用 javascript 函数

javascript - ng-change 事件调用第一次使用 ng-repeat 创建但不是第二次创建的单选按钮

c# - Web Api 使用 Get 返回 DataSet

jquery - ListView 过滤器不过滤新项目