我正在开发一个 Web 表单,其中要求用户输入只能包含拉丁字符的文本,包括扩展拉丁字符(例如 ñ、é、ü 等),但应排除任何非拉丁字符(例如西里尔字母) 、中文、阿拉伯文等)。我想使用元素的 HTML5 模式属性来强制执行客户端验证。
到目前为止,我已经尝试使用 ^[A-Za-z]+$ 等正则表达式模式来匹配拉丁字符,但这不包括扩展拉丁字符。这是我目前拥有的代码:
<input type="text" pattern="^[A-Za-z]+$" title="Please enter Latin characters only">
这对于基本拉丁字母效果很好,但无法验证扩展拉丁字符。我正在寻找一种方法来修改此模式以包含所有拉丁字符,包括扩展字符。
有人可以帮助我为此目的使用正确的正则表达式模式吗?另外,在使用模式属性进行此类验证时,是否有任何潜在的陷阱或注意事项我应该注意?
有一个有趣的工作,您应该能够使用
\p{sc=Latin}*
作为它的模式来识别所有扩展拉丁字符,您还应该能够基于 Unicode 脚本标签来指定它(wiki 这里) 。只需确保默认列表涵盖您需要的所有内容即可。