我有一个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 ”
答案 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;