html - HTML 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>
解决方案
该pattern="[A-zA-Z]{1,13}"
模式由 JS RegExp 引擎解析为^(?:[A-zA-Z]{1,13})$
. 它匹配一个由 1 到 13 个字符组成的字符串,这些字符是 ASCII 字母,还有[
, \
, ]
, ^
, _
, `
(有关更多详细信息,请参阅此答案)。
您计划仅验证以大写 ASCII 字母开头后跟小写字母、然后有空格、然后再次是大写 ASCII 字母后跟小写字母的字符串。
然后,您可以使用
pattern="[A-Z][a-z]* [A-Z][a-z]*"
如果你想让规则的限制少一点,你可以使用[A-Z][a-zA-Z]*\s+[A-Z][a-zA-Z]*
(这也将允许 ALLCAPS 中的字符串,并允许两个字母字符串之间的任何 1+ 空白字符。如果你计划实现 Unicode 字母支持,它只会是在最新的 Chrome 版本中很容易(看起来像pattern="\p{Lu}\p{L}*\s+\p{Lu}\p{L}*"
)。但是,它不适用于仍然不支持 ECMA2018 标准的所有其他浏览器。
推荐阅读
- python - 具有索引输出的 Find_between 函数?
- java - 在使用命名空间 std 的 c++ 头文件上运行 SWIG 时缺少分号错误
- arrays - VBScript (.vbs) 从第二个 .vbs 执行时产生错误
- javascript - 使用 JavaScript 打印时如何同时使用 2 个 CSS
- imagemagick - 使用从相邻像素插值的图像中的一种颜色替换/重绘所有像素
- twitter-bootstrap - Bootstrap:是否可以创建一个可以导入到网站上每个新页面的模板?
- python - 从脚本创建 exe 文件时如何修复 pyinstaller 无法找到 matlab 文件
- angular - 创建组件作为元素的子元素而不覆盖其他子元素?
- javascript - 在函数中插入“继续”语句,稍后在另一个函数中调用“For循环”语句
- mapbox-gl-js - 动态添加数据,删除边界外的标记,在边界内添加标记