String.contains() Javascript polyfill

Firefox soporta desde su versión 19 el método contains() de la clase String, que devuelve true o false según si una cadena contiene o no otra cadena. Por ejemplo:

"foo".contains("oo") "foo".contains("bar") 

Ningún otro navegador lo soporta de momento, pero es sencillo hacerlos compatibles. Con estas lineas se comprueba si existe el método contains y en caso contrario se creará.

if(!('contains' in String.prototype)){
   String.prototype.contains = function(str, startIndex) {
      return -1 !== String.prototype.indexOf.call(this, str, startIndex);
   };
}

También se podría usar algo como if( "foo".indexOf("bar") != -1 ){

Hay cierto debate sobre si se debe o no modificar las clases de las que no se es propietario. Entiendo que en determinadas situaciones puede suponer un problema, pero me cuesta imaginar el caso en el que esto lo sea. En cualquier caso siempre podéis hacer una función nueva pasándole las cadenas correspondientes como dos parámetros por ejemplo, sin sobreescribir la clase String original, pero a mí me parece más limpio así.

strContainsStr( str1, str2){ return ( str1.indexOf(str2) != -1 ? true : false); } strContainsStr("foo","oo") strContainsStr("foo","bar") 

Por ejemplo.

Comentarios (1)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.