0

我在试图弄清楚如何解析从用户那里收集的信息时遇到了一些麻烦。我正在收集的信息是:

  • 年龄
  • 性别
  • 邮政编码

以下是我如何从用户那里收到此信息的一些示例:

  • 30男90250
  • 30/月/90250
  • 30 米 90250
  • 米 30 90250
  • 30-M-90250
  • 90250,M,30

我从explode 函数开始,但留下了一个巨大的if else 语句列表,试图查看用户如何分隔信息(是空格、逗号、斜线还是连字符)

任何反馈表示赞赏。

谢谢

4

2 回答 2

2

这很容易。邮政编码总是 5 位数字,所以简单的正则表达式匹配/\d{5}/就可以了。年龄是一个 1 到 3 位的数字,所以请/\d{1,3}/注意这一点。至于性别,你可以只寻找一个ffor female,如果没有假设male

尽管如此,单独的输入字段有什么问题?

于 2012-06-30T02:28:19.590 回答
2

您可能需要使用一些正则表达式:

  • 一个查找 5 个数字的数字:[^\d]\d{5}[^\d]
  • 一个查找 2 个数字的数字:[^\d]\d{2}[^\d]
  • 一个寻找单个字母的: [a-zA-Z]

[编辑]

我已经编辑了正则表达式。它们现在匹配所有提供的替代方案,并且不需要对输入字符串进行任何更改(这使其成为更有效的选择)。它们也可以按任何顺序运行。

于 2012-06-30T02:29:31.253 回答