Разбор текста с помощью Javascript - PullRequest
6 голосов
/ 08 января 2010

Я пытаюсь использовать Javascript для разбора текста, который был введен в текстовое поле - который будет объединять различные переменные, созданные пользователем, для создания случайных действий. Это может иметь больше смысла, глядя на пример. Некоторые примеры ввода могут быть:

Activity
@Home
@Out

@Home
Read @book for @time
Clean up @room for @time

@Out
Eat at at @restaurant

@book
Enders Game
Lord of the Rings

@room
bedroom
garage
basement

@restaurant
Red Robin
McDonalds
Starbucks

@time
15 minutes
30 minutes
45 minutes
60 minutes

Фунт / и знаки будут использоваться для разделения различных категорий.

Выход будет определяться случайным образом из заданного ввода, например:

"Ешь в Старбакс". или же «Прочитайте Властелин колец в течение 60 минут». или же «Чистый гараж за 30 минут.»

Это выполнимо? Кажется, это должно быть довольно просто, но я не знаю, с чего начать. Есть предложения?

Спасибо

Альберт

Ответы [ 2 ]

11 голосов
/ 08 января 2010

Как насчет:

var myText = ...; // Input text
var lines = myText.split("\n");
var numLines = lines.length;
var i;
var currentSection;
var sections = Array();
var phrases = Array();

// parse phrases
for (i = 0; i < numLines; i++) {
  var line = lines[i];
  if (line.indexOf('@') == 1) {
    // start of e.g. time section, handled in nex loop
    break;
  } else {
    // phrase
    phrase.push(line);
  }
}

// parse sections
for ( ; i < numLines; i++) {
  var line = lines[i];
  if (line.indexOf('@') == 1) {
    // start of next section, handled in nex loop
    currentSection = line;
    sections[currentSection] = new Array();
  } else {
    // add section entry
    sections[currentSection].push(line);
  }
}

Это не слишком сложно, но делает свою работу.Хотя не проверял, но что-то вроде этого должно работать.И где веселье, если бы это сработало; D

5 голосов
/ 08 января 2010

Нет проблем вообще. Разделите значение текстового поля в массив на основе символов разрыва строки. Затем просмотрите массив по одному элементу за раз, сортируя значения по переменным для каждого раздела. Наконец, используйте генератор случайных чисел JavaScript, чтобы случайным образом определить, какую из каждой группы выбрать. Вывести пользователю, присвоив значение элементу HTML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...