Проверка подстрок в строке

Скрипт позволяет проверить сразу несколько подстрок в строке

ф-ия:

chk(str, obj, ret); // str - проверяемая строка, obj - что проверять (об это подробнее ниже), ret - что возвращать (подробнее ниже)


obj - передаваемый объект, в котором указываются уже имеющиемся массивы:
- EngB - английский алфавит БОЛЬШОЙ
- EngS - английский алфавит МАЛЕНЬКИЙ
- Eng - английский алфавит
- RusB - русский алфавит БОЛЬШОЙ
- RusS - русский алфавит МАЛЕНЬКИЙ
- Rus - русский алфавит
- nums - цифры
- sign - +, -, *, / знаки (скрипт создавался изначально для калькулятора, поэтому имеется такой массив)

Пример передаваемого объекта
{"EnbG" : "A", "nums" : "0"}

Первое - что проверять, второе - исключения, то есть, проверяем массив EngB, но без буквы 'A', проверяем массив с цифрами, но убираем '0'

Так же можно проверять не готовое, а свое, используя 'my', пример:

{"my" : "=,`"}

Перечисляем через ','

ret - что возвращать? По умолчанию стоит 'boolean', но вы можете указать 'index' и 'word'. 'index' вернет позицию, где встретилось первое совпадение, 'word' вернет то, что совпало

Полные примеры использования:

var str = "Privet ya chelovek!";

alert(chk(str, {"EngB" : ""}, "index"));
alert(chk(str, {"my" : "!"}));
alert(chk(str, {"nums" : ""}, "boolean"));


Код:

/*
   Author: FroZo
   Date: 30.06.14
   Time: 19:52
   
   Functions:	chk()	return[typeof : boolean/number/string];
*/

function chk(str, pars, ret){
  if(ret == undefined){
    ret = "boolean";
  }
  
  if(str == undefined){
    if(ret == "boolean"){
	  return false;
	}
	else if(ret == "index"){
	  return -1;
	}
	else if(ret == "word"){
	  return "";
	}
  }
  
  /* CONSTANTS */
  var EngB = "QWERTYUIOPASDFGHJKLZXCVBNM".split("");
  var EngS = EngB.join("").toLowerCase().split("");
  var Eng = EngB.concat(EngS);
  var RusB = "ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ".split("");
  var RusS = RusB.join("").toLowerCase().split("");
  var Rus = RusB.concat(RusS);
  var nums = "0123456789".split("");
  var signs = "+-/*".split("");
  
  var tmp = [];
  
  for(var p in pars){
    if(typeof pars[p] == "string" && pars[p] != ""){
	  pars[p] = pars[p].split(",");
	}
  }
  
  for(var p in pars){
    if(p == "EngB"){
	  tmp = EngB;
	}
	else if(p == "EngS"){
	  tmp = EngS;
	}
	else if(p == "Eng"){
	  tmp = Eng;
	}
	else if(p == "RuB"){
	  tmp = RusB;
	}
	else if(p == "RusS"){
	  tmp = RusS;
	}
	else if(p == "nums"){
	  tmp = nums;
	}
	else if(p == "signs"){
	  tmp = signs;
	}
	else if(p == "my"){
	  tmp = pars[p];
	}
	if(p != "my" && pars[p] != ""){
	  for(var i = 0; i < tmp.length; i++){
	    for(var k = 0; k < pars[p].length; k++){
		  if(tmp[i] == pars[p][k]){
		    tmp.splice(i, 1);
		  }
		}
	  }
	}
	
	for(var i = 0; i < tmp.length; i++){
	  if(str.indexOf(tmp[i]) != -1){
	    if(ret == "boolean"){
		  return true;
		}
		else if(ret == "index"){
		  return str.indexOf(tmp[i]);
		}
		else if(ret == "word"){
		  return tmp[i];
		}
	  }
	}
  }
  
  if(ret == "boolean"){
    return false;
  }
  else if(ret == "index"){
    return -1;
  }
  else if(ret == "word"){
    return "";
  }
}
Теги:
Javascript, проверка, скрипт
Добавлено: 17 Июля 2014 10:21:10 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...