2016-04-22 87 views
1

我有一个查询字符串的选择语句,我想分开的表名与给定的字符串在JavaScript中使用正则表达式。我认为当找到来自单词时,然后拆分下一个单词并返回。
样品查询字符串
我可以从sqlite查询字符串中获取表名吗?

var query="select name,age from tbl_name where id='30'"; 
var query="select name,age from tbl_name; 
var query="select * from tbl_name where id='30'"; 

当你用上述三个字符串匹配,它应该返回表名 “tbl_name

回答

1

试试这个正则表达式:

"/select.*from\s+(\w+)/i" 

观看演示:Regex Demo

在演示中,我把“G”修饰,但也只是这样你可以看到在这三种情况下测试的正则表达式。 g不应该在你最后的正则表达式中。

这是一个关于如何使用它的例子。

var query = []; 
 
    query[0] = "select name , age from tbl_name1 where id='30'"; 
 
    query[1] = "select name,age from tbl_name2"; 
 
    query[2] = "select * from tbl_name3 where id='30'"; 
 
    var arrayLength = query.length; 
 
    var tableName; 
 

 
    for (var x = 0; x < arrayLength; x++) 
 
    { 
 
     tableName = query[x].match(/select.*from\s+(\w+)/i)[1]; 
 
     document.body.innerHTML += tableName + " "; 
 
    }

+0

你可以给一些更多的细节我如何使用这个在我的代码? –

+0

我添加了一个小代码,但基本上如何描述jcubic。 –

2

尝试:

var query="select * from tbl_name where id='30'"; 
 
var tableName = query.match(/from ([^ ]+)/i)[1]; 
 
document.body.innerHTML = tableName;

相关问题