2
我有一個輸入字段email1,我希望將它用於正則表達式進行驗證。當我在web上加載xpage時,它將反斜槓加到現有的反斜槓上(我認爲我應該在代碼中這樣做)。它也用我認爲是unicode的非字母數字替換。XPages validateConstraint正則表達式在網絡中的行爲很奇怪
<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*\[email protected]\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>
任何人都可以看到我做錯了什麼,並指出我在正確的方向。
謝謝,克努特!那工作。 – carlo