【问题标题】:Allowing comma separated values in textbox using regular expression允许使用正则表达式在文本框中使用逗号分隔值
【发布时间】:2014-06-24 07:43:38
【问题描述】:

在我的 asp.net 应用程序中,我有一个文本框,我想在其中允许逗号分隔值,例如

name1,name1,name3

我有一个用于检查值的正则表达式,即单个值(name1 或 name2 或 name3)必须满足正则表达式 [a-zA-Z]+[a-zA-Z0-9-_]*。

现在我想使用单个正则表达式检查这两个验证

  1. 单个值必须满足[a-zA-Z]+[a-zA-Z0-9-_]*正则表达式

  2. 文本框必须有逗号分隔值。

我无法为此创建适当的正则表达式。

【问题讨论】:

  • 在textbox 中,您可以在不使用正则表达式的情况下插入逗号分隔值。通常,正则表达式用于输入验证。是否只想在输入控件中插入逗号分隔值?
  • 这只是懒惰。您只需要在当前正则表达式之前添加 ,? 并重复所有正则表达式 0 到 n 次
  • 为什么要让自己的生活变得艰难?只需拆分,,修剪空格,然后检查您当前的正则表达式吗?除非你有一个奇怪的业务要求只使用正则表达式......
  • @Christos 我只想允许逗号分隔值。
  • @vaibhavshah - 为什么不呢?

标签: c# asp.net regex validation textbox


【解决方案1】:

你可以使用

^[a-zA-Z]+[a-zA-Z0-9_-]*(?:,[a-zA-Z]+[a-zA-Z0-9_-]*)*$

说明:

^                         # Start of string
[a-zA-Z]+[a-zA-Z0-9_-]*   # Match a single value
(?:                       # Start of non-capturing group
 ,                        # Match a comma
 [a-zA-Z]+[a-zA-Z0-9_-]*  # Match a single value
)*                        # Repeat non-capturing group as often as necessary
$                         # End of string

如果您正在使用该正则表达式客户端(即根据 ECMAScript 规则),您可以将其简化为

(?i)^[a-z]+[\w-]*(?:,[a-z]+[\w-]*)*$

【讨论】:

    猜你喜欢
    • 2017-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-31
    • 2013-12-28
    相关资源
    最近更新 更多