<f:validateRegex>
不適用於客戶端,但適用於服務器端。發佈<h:messages>
併發送包含此<h:inputText>
的表單,以查看生成的消息中sender
組件的錯誤值。
例子:
<h:form>
Input the data:
<h:inputText id="sender" value="#{contactForm.sender}">
<f:validateRegex pattern="([a-zA-Z_0-9]).{4,32}" />
</h:inputText>
<h:commandButton value="Submit" />
<h:messages />
</h:form>
正如意見建議的BalusC,你可以火用ajax的onkeyup
事件您輸入的驗證。
<h:form>
Input the data:
<h:inputText id="sender" value="#{contactForm.sender}">
<f:validateRegex pattern="([a-zA-Z_0-9]).{4,32}" />
<f:ajax event="keyup" render="messageId" />
</h:inputText>
<h:message id="messageId" for="sender" />
</h:form>
此外,正如DavidStarkey發表評論,您的正則表達式匹配[email protected]
。如果你想用一個點(.
)作爲正則表達式的一部分,使用反斜槓(\
)之前它:
<f:validateRegex pattern="([a-zA-Z_0-9])\.{4,32}" />
更多信息:
在正則表達式中,'.'表示任何字符,包括'@'。如果你想要一個文字週期,可以使用'\ .' –