JS-通过正则表达式搜索带引号和不带引号的字符串
JS - Search String with quotes as well as without quotes via regex
我希望能够使用基于我的代码的示例执行以下操作:
- 搜索木匠公司返回2条记录
- 搜索"木匠公司"(带双引号)返回1条记录
到目前为止,我还无法使其工作,还尝试将regex与以下表达式相结合:
"['w's]+'"
这是我的plunker样本:
http://plnkr.co/edit/SqFOqqiRG7oFXHY89o6e?p=preview
特别是我正在研究的代码部分:
var app = angular.module('filter', [])
app.controller('MainController', function($scope) {
$scope.deals = [{
lob: 'Marine, Motor, Carpenter',
cedent: 'ABC Paris Company',
treaty: 'QS - Test'
}, {
lob: 'Liability',
cedent: 'Carpenter Company',
treaty: 'W/XL Test'
}];
});
// filterBy implementation
app.filter('filterBy', function() {
return function(array, query) {
var parts = query && query.trim().split(/'s+/g) ,
keys = Object.keys(array[0]);
if (!parts || !parts.length) return array;
return array.filter(function(obj) {
return parts.every(function(part) {
return keys.some(function(key) {
return String(obj[key]).toLowerCase().indexOf(part.toLowerCase()) > -1;
});
});
});
};
});
提前感谢您的一些提示如何解决它。
您需要稍微调整一下代码,以便从输入中收集搜索关键字:
app.filter('filterBy', function() {
return function(array, query) {
if (!query) return array; // Added for better error checking
var parts = query && get_query(query.trim()) , // Use the get_query function here
keys = Object.keys(array[0]);
if (!parts || !parts.length) return array;
return array.filter(function(obj) {
return parts.every(function(part) {
return keys.some(function(key) {
return String(obj[key]).toLowerCase().indexOf(part.toLowerCase()) > -1;
});
});
});
};
});
function get_query(qry) { // Function to collect search keywords
var re = /"([^"]+)"|'S+/g; // The regex gets all "..." or
var m; // non-whitespace substrings
var res = [];
while ((m = re.exec(qry)) !== null) {
res.push(m[1] ? m[1] : m[0]); // Get either the captured text inside ""
} // or a non-whitespace chunk
这是一个更新的plunkr
相关文章:
- 使用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