如何在JQuery中使用正则表达式在json字符串上搜索数据表列
javascript-How to use regex on json string to search datatable column in JQuery?
我刚刚在javascript中使用了下面的语句来搜索一列中的特定字符串并过滤数据表中的记录。
term = $(this).val();
table.column(2).search(term, true, false).draw();
这是我的JSON字符串:
[{"userid":"2315","location":"x","details":"{'"subjects'": {'"English'": ['"meena'", '"teena'"]}, '"hours'": {'"2'"}}}",
{"userid":"3009","location":"y","details":"{'"subjects'": {'"English'": ['"meena'"]}, '"hours'": {'"4'"}}},
{"userid":"3109","location":"z","details":"{'"English'": ['"suresh'", '"divya'"]}, '"hours'": {'"4'"}},
{"userid":"3209","location":"a","details":"{'"English'": ['"ramesh'", '"meena'"]}, '"hours'": {'"4'"}},
{"userid":"3309","location":"b","details":"{'"subjects'": {'"English'": ['"revathi'", '"meena'"]}, '"hours'": {'"4'"}}}
]
希望使用正则表达式匹配"English"的任何一个值,并使用该值搜索以过滤记录。如下所示
regex = '"English": ["'+ '.*' +term+'.*';
table.column(3).search(regex, false, false).draw();
但是上面的语句不起作用。
有谁能建议我写正则表达式的正确方法吗?
-
如果
search
方法支持正则表达式,并且您绝对需要这样做,则传递new RegExp('"English": ''["'+ '.*' +term+'.*', 'gi')
之类的东西。 -
正如评论中建议的那样,将JSON视为字符串并不是一个好主意。过多的空格或转义特殊字符可能导致错误的答案。您最好解析JSON并根据需要进行搜索,例如:
var term = ...; for (var i = 0, l = rows.length; i < l; i++) { var row = rows[i]; var user = JSON.parse(row); var details = user.details && JSON.parse(user.details); if (details.English && details.English.indexOf(term) !== -1) { // there is the searched term in the users' details } }
相关文章:
- 使用javascript或angularjs特定过滤器搜索字符串中第一个img标记的json值
- javascript中的字符串搜索无法找到当前字符串
- Javascript中与区域设置无关的字符串搜索
- 使用变量而不是静态字符串搜索数组
- 为什么字符串搜索的参数表现得像Regex
- Javascript:字符串搜索正则表达式,从字符串的末尾开始
- 不区分大小写的字符串搜索不起作用
- jquery移动字符串搜索页面文本
- 基于字符串搜索的简单jquery查找和显示无法使其工作
- javascript兼容chrome、safari和opera的字符串搜索功能
- 为什么字符串搜索对某些字符串有效而对其他字符串无效
- 使用查询字符串搜索 AngularJS 资源
- Javascript RegEx全局字符串搜索下划线字符(_)
- 如何做一个“生”字字符串搜索和替换在JavaScript中,没有REGEX
- 使用JS/jQuery进行字符串搜索/模糊匹配
- JavaScript字符串搜索
- JS字符串搜索问题
- Javascript字符串搜索,字母i上出现双点
- 使用 HTML 输入值中的部分字符串搜索页面内容
- 通过单个字符串搜索Linkedin