Roo*_*ife 2 javascript regex angularjs
我试图找到if一个value存储在动态variable中的内容array,同时忽略大小写并且不使用 to.toLowerCase()或 upper。
我所拥有的有效的是:
if ($scope.favoriteItems.indexOf(item.name.toLowerCase()) === -1) {
Run Code Online (Sandbox Code Playgroud)
我想要使用正则表达式之类的东西if (item.name 'no matter case is in $scope.favoriteItems)
你可以这样做:
if ($scope.favoriteItems.some(item => (new RegExp(item.name, 'i')).test(item))) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
基本上,要创建带有变量的 RegExp,您可以new RegExp()将所需的表达式作为第一个参数,并将任何标志作为第二个参数。
所以,像这样:
var name = 'abc';
new RegExp(name, 'i');
Run Code Online (Sandbox Code Playgroud)
变成:
/abc/i
Run Code Online (Sandbox Code Playgroud)
if ($scope.favoriteItems.some(item => (new RegExp(item.name, 'i')).test(item))) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
该Array.prototype.some函数循环遍历数组中的每一项,并继续执行,直到有一项返回 true。在这种情况下,我们继续循环,直到其中一个与我们的正则表达式匹配(意味着它在数组中),然后停止。
也就是说,除非item.name不仅仅是字符串匹配,否则使用正则表达式测试是巨大的杀伤力,你最好坚持使用你所拥有的。
| 归档时间: |
|
| 查看次数: |
5053 次 |
| 最近记录: |