我可以从sqlite查询字符串中获取表名吗?

时间:2016-04-22 10:20:07

标签: javascript regex sqlite

我有一个select语句的查询字符串,我想在javascript中使用正则表达式将表名与给定字符串分开。我想当找到from词然后分开下一个词并返回。
示例查询字符串

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

2 个答案:

答案 0 :(得分:2)

尝试:



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




答案 1 :(得分: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 + " ";
    }
&#13;
&#13;
&#13;