2011-06-24 61 views
0

我已經使用實體框架創建了我的模型,並且我在MVC3中創建了一個基本網站,以允許我編輯數據庫中的項目。到目前爲止它工作正常,但我想添加一個正則表達式來確保其中一個表單域的內容總是包含一個特定的HTML元素。檢查輸入包含表單提交的HTML元素

我有什麼在我的模型,到目前爲止,在有關財產,如下:

[Required] 
[AllowHtml] 
[DataType(DataType.MultilineText)] 
[RegularExpression("^.*(<p>).*$", ErrorMessage = "Must contain <p> element")] 
public string Text { get; set; } 

我試過上面所示的正則表達式屬性的變化,但似乎沒有任何工作。我基本上想要做的是確保上述屬性的文本區域中的文本始終包含至少一個<p>元素。

不可否認,我在正則表達式上並不是很強大,所以我可能會脫離正軌。任何指針?謝謝。

回答

0

試試這個,它確保有一個打開和關閉<p>標籤(所以他們不能只做<p>而不做</p>)。

[RegularExpression(@"<p\b[^>]*>(.*?)</p>", ErrorMessage = "Must contain <p> element")] 

有一個方便的解釋here,這將幫助您自定義,你應該想的例子。

+0

謝謝。這應該有效,但由於某種原因,它不會。作爲一個測試,我將正則表達式簡化爲'。*',但仍然失敗。我不明白那裏發生了什麼,因爲這應該允許任何事情通過,對吧? –

+0

原來,問題是由於它是一個多行輸入字段,這意味着如果代碼中有換行符,從上面生成的jQuery驗證正則表達式將不匹配。它也不喜歡打開'<'這是一個痛苦至少可以說。當然,在正確的方向前進,謝謝, –

+0

我錯過了@符號,對不起。我現在編輯它,它在測試應用程序中工作。請讓我知道,如果它的工作 - 最好通過upvoting如果它的答案 - ;-) –

相關問題