【问题标题】:How to create proper regex [closed]如何创建正确的正则表达式 [关闭]
【发布时间】:2012-11-15 08:35:47
【问题描述】:

我是这个函数的新手,但我认为这正是我对特定字段验证所需要的。如何在textarea 上只允许以下带有空格或回车的字符:

Allowed chars: 
numbers: 0 to 9
alpha: R L F Y
chars: , - (comma and dash)

我还需要它,以便验证字段可以以数字或字母开头,但不能以逗号 (,) 或破折号 (-) 开头。

任何帮助将不胜感激,

【问题讨论】:

  • 您是使用 JavaScript 还是服务器端语言(哪种?)?你试过什么?你签出a tutorial了吗?
  • @Learner,C#、Java 和 PHP 的标签是从哪里得到的?
  • 在对此处答案的评论中,您写道RLF 必须始终按该顺序排列。我认为您需要编辑您的问题以指定确切什么是允许的,什么是不允许的。也许提供一些合法/非法的例子。另外,请回答@m.buettner 的问题。

标签: c# java php regex


【解决方案1】:

这可能有效:

/^\s*[RFLY0-9][RFLY0-9,\-\s]*$/

显然,取决于您使用的未指定的正则表达式解析器。

编辑: 添加了空格。

【讨论】:

  • 也不允许空字符串。
  • 我想我刚刚找到它。这似乎有效: /^\s*[RFLY0-9][RFLY0-9,\-\s]*$/
  • 将继续测试不同的集合,但我认为就是这样。非常感谢您的即时回复!
  • 这看起来像我的回答。请接受我@user1826037
【解决方案2】:

看看这个模式:

^[0-9RLFY]([0-9RLFY\-\,]*)|\s*$

根据需要使用?i修饰符使其不区分大小写。

【讨论】:

    【解决方案3】:
    /^[0-9RLFY][0-9RLFY,\-\s]$/
    

    应该可以解决问题。根据您想要的空白类型,替换 \s

    【讨论】:

      【解决方案4】:

      试试这个:

      /[0-9RLFY\-\,]/
      

      您可以在括号中添加其他字符,并可以在末尾添加“i”修饰符以表示“忽略大小写”

      【讨论】:

      • Y-, 不是有效范围,会导致错误或被忽略 - 无论哪种方式,破折号都不会成为字符类的一部分
      • 试过这个和上面的另一个帖子。不起作用。它不允许我输入 RLF 作为第一组字符。可以输入的典型值集是 RLF,100,101- 或 10Y,11Y,RLF,100,200,201-,300
      • 对不起,如果我不太清楚如何输入这些值。如果选择输入 3 个字符 RLF,则必须按该顺序 - RLF。 Y 字符始终添加在 num 字符的末尾,并且永远不会添加破折号字符。
      • 你能提供一些样品吗?
      猜你喜欢
      • 2018-03-20
      • 1970-01-01
      • 2019-09-16
      • 2011-03-04
      • 1970-01-01
      • 2020-03-25
      • 2015-04-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多