用Javascript解析文本

Alb*_*ert 6 javascript parsing

我正在尝试使用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分钟."

这可行吗?看起来它应该相当简单,但我不知道从哪里开始.有什么建议?

谢谢,

阿尔伯特

Men*_*ene 11

怎么样:

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);
  }
}
Run Code Online (Sandbox Code Playgroud)

这不是太复杂,但做的工作.虽然没有测试,但这样的事情应该有效.如果它能够正常工作,那么它的乐趣在哪里; D.

  • lines.size应为lines.length (2认同)

Dav*_*fer 6

完全没问题.根据换行符将文本框值拆分为数组.然后,一次遍历数组一个元素,将值排序为每个部分的变量.最后,使用JavaScript的随机数生成器随机确定要选择的每个组中的哪一个.通过将值分配给HTML元素来输出给用户.