1

我正在尝试使用正则表达式来验证数据条目。我对这个领域很陌生,所以请多多包涵。

必须输入 1-xxxxx 形式的 ID 号。它总是以 1 开头,然后是 -,然后是 1-6 个字符

假设用户在没有 # 的情况下使用 1-.* 输入它,我能够正确验证它

现在,我希望该功能继续确保用户输入数字为 1-xxxxxx 但如果他们添加 # 字符也会出错。使用 [^#]1-.* 并没有给我想要的结果,因为它现在只有在有 # 时才会出错,并忽略其他条件。我曾经使用布尔值,并尝试过 [^#|1-.*] 但显然这是错误的语法。请帮助:D

4

1 回答 1

1

如果你想让它不包括#之前的1,你可以试试^1-[\da-zA-Z]{1,6}$。这也为您的 1 到 6 个字符增加了一点点。你想要的条款。这只是将正则表达式限制为开始和结束,并且不允许较大字符串中的部分片段。使用您评论中的示例,我在这里做了一些测试。

通过将正则表达式包装进去^$,如果它以 a 以外的任何内容开头,1它就会中断。将正则表达式分开,您会得到:

  1. ^, 行首
  2. 1-,你已经知道的简单部分。要求字符串的开头是 1 直接后跟-,中间没有任何内容......没有空格,其他东西等。
  3. [\da-zA-Z], 任何数字或字母小写/大写 az。
  4. {1,6}将最后一段重复 1 到 6 次。
  5. $行结束。
于 2013-10-23T18:00:51.223 回答