iproger
@iproger
Безответственный гений

Как составить регулярное выражение на js?

Полный нуб в регулярках, не могу составить, нужна помощь.

Задача: по названию города, страны и коду вернуть значение. Example все проясняет.
Входные данные могут (имеют) как минимум одинарные кавычки, т.е. надо сделать универсально, чтобы можно было добавить быстро и другие символы, например, название Saglek проверяется на [буквы|кавычка1|другие символы].
На месте Saglek может быть и 2 и 3 слова через пробел.
Название НЕрегистронезависимое, т.е. не учитывать регистр.

Тег b можно исключить, это я для выделения сделал, забыв про code.

/* example:
	 * val = "Saglek, CA (YSV)", return YSV
	 * val = "Saglek Xxx city, CA (YSV)", return YSV
	 * val = "Saglek", return Saglek
	 * val = "Saglek ` Great City (town-city)", return Saglek ` Great City (town-city)
	 */
	this.get_search_value = function(val) {
		var pattern = /^./;
		if (val.test(pattern)) {
			// return only code
			return new RegExp("pattern"[, флаги]);
		}
		return val;
	};
  • Вопрос задан
  • 3065 просмотров
Решения вопроса 1
Anonym
@Anonym
Программирую немного )
function magicMatch(text) {
    var matches = text.match(/^[^\,]+\,.+\((.+)\)$/);
    if (matches && matches[1]) {
        return matches[1];
    }
    return text;
}
console.log( magicMatch('Saglek, CA (YSV)') ); // YSV
console.log( magicMatch('Saglek Xxx city, CA (YSV)') ); // YSV
console.log( magicMatch('Saglek') ); // Saglek
console.log( magicMatch('Saglek ` Great City (town-city)') ); // Saglek ` Great City (town-city)
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
madmages
@madmages
Человек прямоходящий
var regularVar = /[a-zA-Z0-9]/
var resultArray = regularVar.exec("What the fuck?")
Ответ написан
Anonym
@Anonym
Программирую немного )
Такого паттерна нет. Регулярка либо находит нужное, либо не находит.
Пишите 2 регулярки:
1. Если есть кавычка - вернуть всё без кавычки
2. Иначе, если есть скобки - вернуть всё из скобок
3. Иначе вернуть всё
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
var pattern = /\((.+?)\)/
Ответ написан
mlnkv
@mlnkv
JavaScript Developer
дабы написать регулярку, надо точно знать, что она должна искать , а у вас логика не просматривается))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы