2016-04-22 88 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;

相關問題