代码之家  ›  专栏  ›  技术社区  ›  Joe Schmoe

用于多行字符串的ASP.NET MVC正则表达式

  •  1
  • Joe Schmoe  · 技术社区  · 7 年前

    我只需要在多行文本区域输入字段中允许以下字符:

    空格、数字、英文字母和以下特殊字符:!”#$%&')*+,-。/:;<=>?@`[\~]^{{}

    我想除了多线部分:

            [RegularExpression("^[ -~]+$", ErrorMessage = @"Allowed characters for item description: space, numbers, English letters and following special characters: ! "" # $ % & ' ( ) * + , - . / : ; < = > ? @ ` [ \ ~ ] ^ _ {{ | }}")]
    

    只要将所有内容作为一行输入,它就可以正常工作。我只是不知道如何把它扩展到多行。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Wiktor Stribiżew    7 年前

    您可以使用

    "^[ -~]*(?:\r?\n[ -~]*)*$"
    

    模式匹配:

    • ^ -字符串开头
    • [ -~]* -0个或更多可打印的ascii字符
    • (?: -开始非捕获组匹配
      • \r?\n -一个可选的(1或0)CR符号,然后是一个LF符号(以便它与Windows和Unix/Linux行尾匹配)
      • [-~] -0个或更多可打印的ascii字符
    • )* -…零次或多次
    • $ -字符串结束。