my_kachanov
@my_kachanov
Начинающий веб-разработчик

Разбитие строку на массив, используя регулярные выражения?

По идеи данный код должен выбирать ( 1 и Биологию и занести их в arr[0] arr[1]) но тут то и начинается несусветица....
Ссылка на код https://jsfiddle.net/my_kachanov/s1sxjjLx/
Сам код:
var string_txt = "1 Биология. 2 География. 3 Геология.";
	var expression_answer = /([\d]{1,3})([А-Я а-я \W\s]+)/;
  var result_answer = string_txt.split(expression_answer);
  alert(result_answer[0] + result_answer[1]);
  alert(result_answer[2] + result_answer[3]);
  alert(result_answer);
  • Вопрос задан
  • 102 просмотра
Решения вопроса 1
Ivanq
@Ivanq
Знаю php, js, html, css
split *делит* код на части, а expression_answer является разделителем, и следовательно убирается. Вам нужен match:
var result_answer = string_txt.match(expression_answer);

Возможно, в Вашем случае можно обойтись
var string_txt = "1 Биология. 2 География. 3 Геология.";
var result_answers = string_txt.split(". ");
for(var i = 0; i < result_answers.length; i++) {
  result_answers[i] = result_answers[i].match(/^(\d+) (.+)$/).slice(1);
}
alert(result_answer[0][0]); // 1
alert(result_answer[0][1]); // Биология
alert(result_answer[1][0]); // 2
alert(result_answer[1][1]); // География

Или даже проще:
var string_txt = "1 Биология. 2 География. 3 Геология.";
var result_answers = string_txt.split(". ");
alert(result_answer[0]); // 1 Биология
alert(result_answer[1]); // 2 География
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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