这里我有一个字符串:
var text = "hello('baby', 'i', 'love', 'you', 123);";
如果我想写一个函数来处理这个字符串,我希望它返回:
function yeah(text) {
....
}
我想yeah(text)
返回一个数组['baby', 'i', 'love', 'you', 123]
,那么编写这个函数的最佳方法是什么?
这里我有一个字符串:
var text = "hello('baby', 'i', 'love', 'you', 123);";
如果我想写一个函数来处理这个字符串,我希望它返回:
function yeah(text) {
....
}
我想yeah(text)
返回一个数组['baby', 'i', 'love', 'you', 123]
,那么编写这个函数的最佳方法是什么?
如果您正在寻找一个数组,最直接的方法是:
function yeah(text) {
return text.match(/\w+(?=')/g);
}
您可以将字符串从第一次出现 (
到最后一次出现,)
然后拆分它并取消引用字符串:
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);
});
}
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/
一种很酷的方法是使用一个名为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']