gpt4 book ai didi

string - 如何验证 JSF 表单上模式的字符串输入字段

转载 作者:行者123 更新时间:2023-12-01 15:02:31 25 4
gpt4 key购买 nike

我有一个要求,其中接受字符串的输入字段只能具有这些格式中的一种,使用 javascript 或 jsf 验证器实现这一点的最佳方法是什么:

N/A-N-N-N 或 N/A-N-N-N-N

上面的模式中可以有任何字母表来代替 A。上面的模式中可以有任何数字来代替 N,而不是 0。

最佳答案

首先,没有“最好”的方法。只有“正确”的方式取决于具体的功能需求。

在 JSF 中进行验证的正常方法是使用 standard validators available via <f:validateXxx> tags 之一。 ,或至 create a class which implements the Validator interface如果所需的功能在标准标签中不可用。另一种方法是按照您自己的建议通过 JavaScript 进行验证,但这完全打败了 robustness of server-side validation因为 JavaScript 代码由最终用户完全控制,因此可以由最终用户编辑/欺骗/禁用。

在您的特定情况下,您希望验证输入是否与常规模式匹配。在这种情况下,<f:validateRegex>因此是该工作的正确标签。

至于实际的正则模式,正则表达式中 1 到 9 之间的任何数字都由 [1-9] 表示。并且 A 和 Z 之间的任何字母字符都在由 [A-Z] 表示的正则表达式中(区分大小写!如果您还打算允许小写,请使用 [a-zA-Z] )。任何像最后一个数字一样的“零次或一次出现”都在由 (...)? 表示的正则表达式中由此...将替换为实际模式。余数,字符/-只要那些不是正则表达式中的特殊字符(例如 .),就可以按原样表示。 , (等,否则它们需要用 \ 转义.

所以,总而言之,这应该做:

<h:inputText>
<f:validateRegex pattern="[1-9]/[A-Z]-[1-9]-[1-9]-[1-9](-[1-9])?" />
</h:inputText>

也可以看看:
  • Regex tutorial
  • java.util.regex.Pattern javadoc
  • 关于string - 如何验证 JSF 表单上模式的字符串输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19161040/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com