簡體   English   中英

無法讓Regex在MVC 4.0 C中為多行文本框工作#

[英]Trouble getting Regex working for multiline textbox in MVC 4.0 C#

這是我的模特

    [Required(ErrorMessage = "At least one 10 digit number is required.")]
    [DataType(DataType.MultilineText)]
    [RegularExpression(@"^\d{10}$", ErrorMessage = "Please enter a valid 10 digit number.")]
    public string TenDigitNumbers
    {
        get;
        set;
    }

這是我的看法

        @Html.TextAreaFor(model => Model.TenDigitNumbers, new { @class = "MyModel", @cols = 11, @rows = 5 })
        @Html.ValidationMessageFor(model => Model.TenDigitNumbers)<br />

此正則表達式適用於輸入文本框的十位數字。 但是,在文本框中輸入的數字超過十位數就會失敗。 我已經讀過正則表達式需要打開多行。 我通過在上面的模型中定義數據類型來做到這一點。 所以我不確定我做錯了什么。

RegularExpressionAttribute不支持MultiLine屬性..你必須自己動手。

這個問題已經在SO上被問過了......不要帶走原作者的代碼..這里有一個例子: https//stackoverflow.com/a/9689880/1517578

有10位數字,你的意思是這樣的:

 1234567890 1234567890 1234567890 1234567890

在這種情況下,您需要一個能夠理解的表達式,例如: ^\\d{10}( \\d{10})*$

如果您使用多行文本框,例如: ^\\d{10}(\\r?\\n\\d{10})*$

這就是你如何使用Regex,基本上不依賴於多行標志或屬性,而是明確定義正則表達式以允許新行,但需要遵循相同的模式

    [RegularExpression(@"^\d{10}(\r?\n\d{10})*$", ErrorMessage = "Please enter a valid 10 digit number.")]
    public string TenDigitNumbers
    {
        get;
        set;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM