Angularjs 当使用区分大小写时,为什么deos正则表达式失败?
当使用区分大小写时,我的正则表达式失败 这很好:Angularjs 当使用区分大小写时,为什么deos正则表达式失败?,angularjs,regex,angularjs-directive,angularjs-scope,angularjs-ng-repeat,Angularjs,Regex,Angularjs Directive,Angularjs Scope,Angularjs Ng Repeat,当使用区分大小写时,我的正则表达式失败 这很好:var re=newregexp(类型)针对“*pq*” 这给出了一个控制台错误:var re=new RegExp(类型为'i')针对“*pq*” 其次,当我通过在输入字段中键入来匹配“\”时,它给出了错误原因 这是我的密码: 此问题的任何更新?对于筛选,您不应使用-new RegExp()。因为它不会逃逸特殊字符,而这个字符在正则表达式中有特殊的含义 \在正则表达式中有特殊含义,还有其他字符需要转义 Like-\/可用于转义/。类似地,{,[
var re=newregexp(类型)代码>针对“*pq*”
这给出了一个控制台错误:var re=new RegExp(类型为'i')代码>针对“*pq*”
其次,当我通过在输入字段中键入来匹配“\”时,它给出了错误原因
这是我的密码:
此问题的任何更新?对于筛选,您不应使用-new RegExp()
。因为它不会逃逸特殊字符,而这个字符在正则表达式中有特殊的含义
\
在正则表达式中有特殊含义,还有其他字符需要转义
Like-\/
可用于转义/
。类似地,{
,[
等可以作为\{
和\[
转义
最好的选择是:
angular.forEach(items, function(item) {
if(item.name.toLowerCase().indexOf(types.toLowerCase()) != -1) {
console.log("matched")
filtered.push(item);
}
});
编辑:
OP的自定义要求-对于筛选,您不应该使用-new RegExp()
。因为它不会转义在正则表达式中具有特殊含义的特殊字符
\
在正则表达式中有特殊含义,还有其他字符需要转义
类似的-\/
可以用来转义/
。类似的{
,[
等可以转义为\{
和\[
最好的选择是:
angular.forEach(items, function(item) {
if(item.name.toLowerCase().indexOf(types.toLowerCase()) != -1) {
console.log("matched")
filtered.push(item);
}
});
编辑:
OP的自定义要求-尝试读取错误。它可能包含有关问题的线索。是的模式不正确…请共享plunkerwhat与“*pq*”
相对应的意思是什么?让我们尝试读取错误。它可能包含有关问题的线索。是的模式不正确…请共享plunkerwhat与“*pq*”相对应的内容
mean?给我们看一个请共享的plunker?@user5711656,我已经做了更改,试试这个plunker…..你不需要“*”来匹配开始或其他的任何东西…如果这有帮助,请让我知道你的其他要求解释你为什么需要“*pq”etc和您要处理的所有其他不同情况我有四种情况…如果用户类型*pq..它显示所有以pq结尾的元素..请检查我的plunker输出..第二,如果用户类型pq*
。它显示所有从pq开始的项目..请检查plunker第三,如果用户类型pq*sv
。它显示所有从开始的项目>pq
和withsv
。哪一个工作正常..请检查plunker第四个如果用户键入*abc*
它显示所有中间有abc项目的项目..在我的plunker中所有工作正常。但是有2个issue case Sensivive和“\”issue share plunker?@user5711656,我已经做了更改,请尝试此plunker….您不需要“*”要匹配起始或其他方面的任何内容…如果这有帮助,请让我知道其他情况,并解释您需要“*pq”的原因etc和您要处理的所有其他不同情况我有四种情况…如果用户类型*pq..它显示所有以pq结尾的元素..请检查我的plunker输出..第二,如果用户类型pq*
。它显示所有从pq开始的项目..请检查plunker第三,如果用户类型pq*sv
。它显示所有从开始的项目>pq
和withsv
。哪个运行正常..请检查PlunkerFirst如果用户键入*abc*
它会显示所有中间有abc项目的项目..在我的plunker中,所有项目运行正常。但有2个问题案例敏感和“\”问题