2014-11-06 92 views
0

如何在Datatables 1.10及更高版本的searchCols選項中使用正則表達式?它過濾罰款正常字符串,但不適用於正則表達式,據我所知。如何在DataTables的searchCols中使用RegExp?

下面是一些代碼(在http://live.datatables.net/bahejesi/1/edit完整的例子):

$(document).ready(function() { 
    $('#example').dataTable({ 
     "ajax": "/ssp/server_processing.php", 
     searchCols: [ 
     null, 
     null, 
     null, 
     { search: "(London|New York)", "escapeRegex": false }, 
     null, 
     null 
     ] 
    }); 
}); 

最後,我要實現的是基於從查詢字符串輸入(例如,ID = A或B過濾我的表,編號< = c)。 (不確定後一部分是否可以通過RegExp實現)

另一個選項是API filter()函數。但我不知道如何將它與上面的示例代碼集成。

回答

3

好的,關於searchCols的文檔不是很清楚。 searchCols的每個元素的行爲正如search本身所做的那樣。因此,添加"regex": true作爲一個選項可以完成這項工作。不知道"escapeRegex": false在這種情況下做什麼。它似乎沒有任何效果。

$(document).ready(function() { 
    $('#example').dataTable({ 
     "ajax": "/ssp/server_processing.php", 
     searchCols: [ 
     null, 
     null, 
     null, 
     { "search": "^S", "regex": true }, 
     null, 
     null 
     ] 
    }); 
}); 
+0

'escapeRegex'只是一個輔助功能在正則表達式字符串轉義特殊字符 - > http://datatables.net/reference/api/$.fn.dataTable.util.escapeRegex()。請記住接受你自己的答案,也許在將來幫助其他人。 +1自我回答。 – davidkonrad 2014-11-07 15:16:55

+0

好的,所以它逃避了在正則表達式中使用的用戶輸入。感謝您的澄清。明天我會被允許的時候會接受。 – matsch 2014-11-07 15:23:22