У меня есть поле ввода, email1, которое я хотел бы использовать с регулярными выражениями для проверки. Когда я загружаю xpage в Интернете, он добавляет обратную косую черту к существующей обратной косой черте (я думал, что должен был сделать это в коде). Он также заменяет не буквенно-цифровые символы тем, что я считаю юникодом.
<xp:td>
<xp:inputText value="#{document1.email}" id="email1"
required="true" styleClass="form-control">
<xp:this.attrs>
<xp:attr name="placeholder"
value="Enter your email address">
</xp:attr>
</xp:this.attrs>
<xp:this.validators>
<xp:validateRequired
message="Email is required">
</xp:validateRequired>
<xp:validateConstraint
message="email not valid">
<xp:this.regex><![CDATA[/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i]]></xp:this.regex>
</xp:validateConstraint>
</xp:this.validators>
</xp:inputText>
</xp:td>
Это визуализированный html:
XSP.addOnLoad(function() {
XSP.attachValidator("view:_id1:_id2:email1",new XSP.RequiredValidator("Email is required"),null,new XSP.RegExpValidator("/^\u0028[\\w-]+\u0028?:\\.[\\w-]+\u0029*\u0029@\u0028\u0028?:[\\w-]+\\.\u0029*\\w[\\w-]{0,66}\u0029\\.\u0028[a-z]{2,6}\u0028?:\\.[a-z]{2}\u0029?\u0029$/i","email not valid"));
Я пытался использовать обе формы значения регулярного выражения, используя статическое значение и вычисленное значение, оба терпят неудачу.
<xp:this.regex><![CDATA[#{javascript:/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i}]]></xp:this.regex>
Может ли кто-нибудь увидеть, что я делаю неправильно, и указать мне правильное направление.