从对象键创建正则表达式
Create regex from object keys
如何使用 Underscore 更好地简化以下内容?对于非常简单的东西,感觉代码太多了。它从对象键创建一个正则表达式。
var obj = {
'dog' : 1,
'cat' : 1,
'rat' : 1
};
var arr = [], regex;
_.each( obj, function( value, index ){
arr.push( index );
});
regex = _.reduce( arr, function(){
return new RegExp( arr.join('|'), 'i' );
});
// console.log( regex ) should output:
/dog|cat|rat/i
我很快想到您不需要为此使用下划线。
var regex = new RegExp( Object.keys( obj ).join('|'), 'i' );
只需像这样使用Object.keys
and native Array.prototype.join
console.log(new RegExp(Object.keys(obj).join("|"), "i"));
与_
,它将是_.keys
console.log(new RegExp(_.keys(obj).join("|"), "i"));
结果会是
/dog|cat|rat/i
如何使用 Underscore 更好地简化以下内容?对于非常简单的东西,感觉代码太多了。它从对象键创建一个正则表达式。
var obj = {
'dog' : 1,
'cat' : 1,
'rat' : 1
};
var arr = [], regex;
_.each( obj, function( value, index ){
arr.push( index );
});
regex = _.reduce( arr, function(){
return new RegExp( arr.join('|'), 'i' );
});
// console.log( regex ) should output:
/dog|cat|rat/i
我很快想到您不需要为此使用下划线。
var regex = new RegExp( Object.keys( obj ).join('|'), 'i' );
只需像这样使用Object.keys
and native Array.prototype.join
console.log(new RegExp(Object.keys(obj).join("|"), "i"));
与_
,它将是_.keys
console.log(new RegExp(_.keys(obj).join("|"), "i"));
结果会是
/dog|cat|rat/i