簡體   English   中英

Ruby regexp無法捕獲目標表達式

[英]Ruby regexp does not catch targeted expression

我正在使用驗證來拒絕任何包含<p>&lt;p&gt;字符串&lt;p&gt; (等效於p html標記的html字符)。

我嘗試使用確實包含它的字符串,但帶有<p>標記的字符串被拒絕,但是帶有&lt;p&gt;字符串不被拒絕&lt;p&gt;

validates_format_of :message_content,
                      :with => /\A((?!<p>).)*\z/i,
                      :message => "pb1"             


validates_format_of :message_content,
                      :with => /\A((?!&lt;p&gt;).)*\z/i,
                      :message => "pb2"  

我應該轉義!&lt;p&gt;某些特殊字符!&lt;p&gt; ,這可能給regexp造成問題? 怎么樣 ?

您可以嘗試驗證正則表達式不匹配。 您將擁有更簡單的regexp,它更易於實現:

validates :message_content, format: { without: /<p>/i, message: 'pb1' }
validates :message_content, format: { without: /&lt;p&gt;/i, message: 'pb2' }

暫無
暫無

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

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