Подтвердить что ты не робот

Regex, чтобы проверить, начинается ли строка, игнорируя различия в case

Мне нужно проверить, начинается ли слово с определенной подстроки, игнорируя различия в case. Я делаю эту проверку, используя следующий шаблон поиска в регулярном выражении, но это не помогает, когда разница в случае между строками.

мой чувствительный к делу способ:

var searchPattern = new RegExp('^' + query);
if (searchPattern.test(stringToCheck)) {}
4b9b3361

Ответ 1

Передайте модификатор i в качестве второго аргумента:

new RegExp('^' + query, 'i');

Посмотрите документацию для получения дополнительной информации.

Ответ 2

Вам вообще не нужно регулярное выражение, просто сравните строки:

if (stringToCheck.substr(0, query.length).toUpperCase() == query.toUpperCase())

Демо: http://jsfiddle.net/Guffa/AMD7V/

Это также относится к случаям, когда вам нужно было бы избежать символов, чтобы заставить решение RegExp работать, например, если query="4*5?", которое всегда будет соответствовать всем остальным.

Ответ 4

Я думаю, что все предыдущие ответы верны, вот еще один пример, похожий на SERPRO, но разница в том, что новый конструктор отсутствует: Обратите внимание: я игнорирую регистр, а ^ означает начало с.

 var whatEverString = "My test String";
 var pattern = /^my/i
 var result = pattern.test(whatEverString);
 if (result === true) {
     console.log(pattern, "pattern did match !");
 } else {
     console.log(pattern, " pattern did NOT match");

 }

Вот jsfiddle, если вы хотите попробовать.

введите описание изображения здесь