数据表查询 url 字符串:需要正则表达式来修复 url 解析
Datatables query url string: need regex to fix url parsing
我是在我在这里找到的示例的基础上构建的:
http://datatables.net/forums/discussion/13488/adding-parameters-to-a-url-to-pre-filter
谁能解释这个正则表达式的作用以及我如何修改它以接受空白 spaces?目前,当您输入 space 时,浏览器会将其编码为 %20。如何让浏览器将 space 解释为 space 并过滤正确的字符串?
示例:“http://example.com/list/?search=bobby%20flay”仍应在数据表搜索字段中插入字符串 "bobby flay"。它还将编码字符串插入为 "bobby%20flay" 并且显然没有找到任何结果。有任何想法吗?谢谢。
$.urlParam = function(name){
var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
if (!results)
{
return;
}
return results[1] || "";
};
$(document).ready(function(){
$('#myTable').DataTable( {
"oSearch": {"sSearch": $.urlParam('search')}
...
});
这样的事情应该有效:https://jsfiddle.net/pdo5k5ht/
var urlString = "http://example.com/list/?search=bobby%20flay",
arr = urlString.split('='),
finalString = arr[arr.length-1].replace(/%20/g, " ");
alert(finalString );
要使用您当前拥有的功能,您似乎可以将这两个功能替换为以下内容:
$(document).ready(function(){
var arr = window.location.href.split('='),
search = arr[arr.length-1].replace(/%20/g, " ");
$('#myTable').DataTable( {
"oSearch": {"sSearch": search}
});
});
1) 等待文档加载
2a) 使用 window.location.href
得到 url
2b) 使用 split 在 '='
的每个实例处创建一个数组
3a) 获取数组长度,获取最后一个对象:arr.length-1
3b)使用正则表达式将 %20 的每个实例替换为“”
4) 将新字符串传递给现有的 table 函数
我是在我在这里找到的示例的基础上构建的: http://datatables.net/forums/discussion/13488/adding-parameters-to-a-url-to-pre-filter
谁能解释这个正则表达式的作用以及我如何修改它以接受空白 spaces?目前,当您输入 space 时,浏览器会将其编码为 %20。如何让浏览器将 space 解释为 space 并过滤正确的字符串?
示例:“http://example.com/list/?search=bobby%20flay”仍应在数据表搜索字段中插入字符串 "bobby flay"。它还将编码字符串插入为 "bobby%20flay" 并且显然没有找到任何结果。有任何想法吗?谢谢。
$.urlParam = function(name){
var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
if (!results)
{
return;
}
return results[1] || "";
};
$(document).ready(function(){
$('#myTable').DataTable( {
"oSearch": {"sSearch": $.urlParam('search')}
...
});
这样的事情应该有效:https://jsfiddle.net/pdo5k5ht/
var urlString = "http://example.com/list/?search=bobby%20flay",
arr = urlString.split('='),
finalString = arr[arr.length-1].replace(/%20/g, " ");
alert(finalString );
要使用您当前拥有的功能,您似乎可以将这两个功能替换为以下内容:
$(document).ready(function(){
var arr = window.location.href.split('='),
search = arr[arr.length-1].replace(/%20/g, " ");
$('#myTable').DataTable( {
"oSearch": {"sSearch": search}
});
});
1) 等待文档加载
2a) 使用 window.location.href
得到 url2b) 使用 split 在 '='
的每个实例处创建一个数组3a) 获取数组长度,获取最后一个对象:arr.length-1
3b)使用正则表达式将 %20 的每个实例替换为“”
4) 将新字符串传递给现有的 table 函数