#1335: Refine #1283 to allow extraction of multiple subpatterns in regex 
validator
-------------------------+--------------------------------------------------
 Reporter:  david        |       Owner:  david   
     Type:  enhancement  |      Status:  new     
 Priority:  normal       |   Milestone:  1.0.4   
Component:  validation   |     Version:  1.0.4RC1
 Severity:  normal       |    Keywords:          
Has_patch:  0            |  
-------------------------+--------------------------------------------------

Comment(by david):

 Examples:

 {{{
 #!xml
 <validator class="regex">
   <argument>username</argument>
   <ae:parameter
 name="pattern">#^\s*(?'localpart'.+?)(@yourcompany\.com)?\s*$#u</ae:parameter>
   <ae:parameter name="export">
     <ae:parameter name="localpart">user</ae:parameter>
   </ae:parameter>
 </validator>
 }}}

 To overwrite the input:
 {{{
 #!xml
 <validator class="regex">
   <argument>username</argument>
   <ae:parameter
 name="pattern">#^\s*(?'localpart'.+?)(@yourcompany\.com)?\s*$#u</ae:parameter>
   <ae:parameter name="export">
     <ae:parameter name="localpart">username</ae:parameter>
   </ae:parameter>
 </validator>
 }}}

 To export two subpatterns:
 {{{
 #!xml
 <validator class="regex">
   <argument>username</argument>
   <ae:parameter
 
name="pattern">#^(?'startdate'\d{4}/\d{2}/\d{2})\s*-\s*(?'enddate'\d{4}/\d{2}/\d{2})$#u</ae:parameter>
   <ae:parameter name="export">
     <ae:parameter name="startdate">startdate</ae:parameter>
     <ae:parameter name="enddate">enddate</ae:parameter>
   </ae:parameter>
 </validator>
 }}}

 To export only the matched part of the input (as you can see, numbered
 subpattern identifiers work as well):
 {{{
 #!xml
 <validator class="regex">
   <argument>datetime</argument>
   <ae:parameter name="pattern">#^\d{4}-\d{2}-\d{2}#u</ae:parameter>
   <ae:parameter name="export">
     <!-- will export only, $matches[0], i.e. the YYYY-MM-DD part, even if
 the value was something like 2010-12-19T02:39:21, as the pattern isn't
 anchored -->
     <ae:parameter name="0">date</ae:parameter>
   </ae:parameter>
 </validator>
 }}}

-- 
Ticket URL: <http://trac.agavi.org/ticket/1335#comment:1>
Agavi <http://www.agavi.org/>
An MVC Framework for PHP5



_______________________________________________
Agavi Tickets Mailing List
[email protected]
http://lists.agavi.org/mailman/listinfo/tickets

Reply via email to