RegExp#test
はあるけど、文字列レシーバで単純正規表現テストしたいなー
え? String#search
があるって? Boolean 返してくれよ
ということで String#contains
に上書き実装
(function(){
let _contains = String.prototype.contains;
Object.defineProperty(String.prototype, 'contains', {
enumerable: false,
configurable: true,
writable: true,
value: function contains(...args){
let [searchString, position] = args;
if(searchString != undefined && searchString.constructor === RegExp){
return searchString.test(this.slice(position));
}else{
return _contains.call(this, ...args);
}
},
});
})();
example
'foo'.contains('o'); //=> true
'foo'.contains(/o/); //=> true