求仅允许大小写字母及带重音字母(如é)的正则表达式
允许带重音字母的输入验证正则方案
原来的正则/^[a-zA-Z]*$/仅能匹配基础英文字母,会将é、à、ñ这类带重音的字母判定为非法字符。要解决这个问题,你可以使用Unicode属性类覆盖所有字母类型:
核心正则表达式
如果需要允许字母(含带重音)和空格(适合姓名类场景):
/^[\p{L}\s]*$/u
如果仅允许字母(含带重音),不允许空格:
/^\p{L}*$/u
关键说明
\p{L}:匹配所有Unicode标准中的字母,涵盖a-z、A-Z以及所有带重音、变音符号的字母(比如é、ü、ç等)\s:可选,用来匹配空格,不需要可直接移除u标志:必须添加,开启正则的Unicode模式,让引擎正确识别\p{L}这类Unicode属性
修改后的完整代码
lastName.addEventListener( 'keyup', inputValidation.bind({ reg: /^[\p{L}\s]*$/u, element: lastName, error: '仅允许字母(含带重音字母)和空格!', }) );
内容的提问来源于stack exchange,提问作者Faizan Ashiq
相关产品推荐
相关产品推荐

