我有以下字符串:
var str = "select field1,field2,field3 from Table1";
在上面的字符串中,我想从关键字中提取所有项目,并在数组中输出如下所示:
field1
field2
field3
但我在数据变量中获得了真正的价值所以我不能用逗号进一步分割数据变量。
var str = "select field1,field2,field3 from Table1";
var outputArr = [];
var data = str.split(' ').some(function(w){return w === 'from'});
console.log(data);
答案 0 :(得分:1)
var str = "select field1,field2,field3 from Table1".split(" ");
var data= str[str.indexOf("from")-1];//get the element that is right before the from
console.log(data.split(","));
或者,使用更高级的选项:
var str = "select field1,field2,field3 from Table1".split(" ");
var data= str[str.findIndex(el=>el.toLowerCase()==="from")-1];//get the element that is right before the from
console.log(data.split(","));
请注意,有些是为了检查sth的存在,所以它返回true或false ......
答案 1 :(得分:1)
您可以使用值slice()
的1到indexOf
元素中的from
,然后用逗号分隔。
var str = "select field1,field2,field3 from Table1";
var arr = str.split(' ')
var result = arr.slice(1, arr.indexOf('fRoM'.toLowerCase()))[0].split(',')
console.log(result)
答案 2 :(得分:1)
这将为您完成工作。
var fromIndex = str.indexOf(' from ');
/*you can put 7 statically because select is exactly 6 letters and consider a space after it*/
str.substring(7,fromIndex).split(',');
更多简短的语法
str.substring(7,str.indexOf(' from ')).split(',');
答案 3 :(得分:1)
你也可以试试这个:
str.toLowerCase().split('select')[1].split('from')[0].replace(/ /g,'').split(',')