我有字段“第一个和第二个名字”,我需要RegEx来大写该字段中每个单词的第一个字母。
使用此模式,只有第一个单词大写,但第二个单词不是
<form action="/action_page.php">
First and Second name <input type="text" name="f_and_s_name" pattern="[A-zA-Z]{1,13}" title="">
<input type="submit">
</form>
答案 0 :(得分:0)
pattern="[A-zA-Z]{1,13}"
模式由JS RegExp引擎解析为^(?:[A-zA-Z]{1,13})$
。它匹配一个由ASCII字母组成的1到13个字符的字符串,以及[
,\
,]
,^
,_
,{{ 1}}(见this answer for more details)。
您计划仅验证以大写ASCII字母后跟小写字母开头的字符串,然后是空格,然后再使用小写字母再次使用大写ASCII字母。
然后,您可以使用
`
如果你想让规则受到限制,你可以使用pattern="[A-Z][a-z]* [A-Z][a-z]*"
(这也将允许ALLCAPS中的字符串,并允许两个字母字符串之间的任何1个以上的空格字符。如果你打算实施支持Unicode字母,只有在最新的Chrome版本中才能轻松实现(它看起来像[A-Z][a-zA-Z]*\s+[A-Z][a-zA-Z]*
)。但是,它仍然无法在所有其他仍不支持ECMA2018标准的浏览器中使用。