0

这里我有一个字符串:

var text = "hello('baby', 'i', 'love', 'you', 123);";

如果我想写一个函数来处理这个字符串,我希望它返回:

function yeah(text) {
    ....
}

我想yeah(text)返回一个数组['baby', 'i', 'love', 'you', 123],那么编写这个函数的最佳方法是什么?

4

4 回答 4

6

如果您正在寻找一个数组,最直接的方法是:

function yeah(text) {
    return text.match(/\w+(?=')/g);
}
于 2013-07-12T17:19:46.907 回答
4

您可以将字符串从第一次出现 (到最后一次出现,)然后拆分它并取消引用字符串:

function yeah(text){
    return text.substring(text.indexOf('(') + 1,  text.lastIndexOf(')'))
      .split(/,\s*/)
      .map(function(s){
        return !isNaN(s) ? +s : s.substring(1, s.length - 1);
      });
}
于 2013-07-12T17:10:44.030 回答
3
function yeah(text) {
    //remove start parenthesis
    var t = text.split("(");

    //remove end parenthesis
    var u = t[1].split(")");

    return u[0].split(", ").map(function(s){
       //remove single quotes
        return s.substring(1, s.length - 1);
    });
}

演示:http: //jsfiddle.net/maniator/T9qdA/

于 2013-07-12T17:12:05.407 回答
-1

一种很酷的方法是使用一个名为hello

它会像这样工作。你有你的字符串var text = "hello('baby', 'i', 'love', 'you');"

那么你有一个这样的功能:

function hello(){
  return arguments;//['baby', 'i', 'love', 'you']
}

使用它的代码将是这样的

var text = "hello('baby', 'i', 'love', 'you')";
var messageArray = eval(text);//['baby', 'i', 'love', 'you']
于 2013-07-12T17:22:41.247 回答