gpt4 book ai didi

Javascript RegEx 无法识别移动 iOS 上的撇号

转载 作者:行者123 更新时间:2023-11-29 11:27:04 24 4
gpt4 key购买 nike

我有一个包含三个输入的表单。
第一个只是数字,对于其他两个,我可以接受从 A 到 Z、空格和撇号的所有字母。

HTML:

<input type="text" name="number" id="number"/>
<input type="text" name="name" id="name"/>
<input type="text" name="surname" id="surname"/>

Javascript:

$("body").on("click","#button",function(){

let regexMessaggio = new RegExp("^[0-9]{1,5}$");
if (!regexMessaggio.test($('#number').val())){
alert("error");
return false;
}

let regexMessaggio2 = new RegExp("^[a-zA-ZÀ-ÿ ']{2,60}$");
if (!regexMessaggio2.test($('#name').val())){
alert("error");
return false;
}
if (!regexMessaggio2.test($('#surname').val())){
alert("error");
return false;
}

alert("OK");

});

此代码在桌面上的每个浏览器中都有效,但在 iOS 上无效。我试过 chrome 和 safari,但它不识别撇号。

我还尝试用以下方法更改正则表达式:
- "^([a-zA-ZÀ-ÿ ']{2,60})+$"
-/^[a-zA-ZÀ-ÿ ']{2,60}$/
- “[a-zA-ZÀ-ÿ ']{2,60}”

最佳答案

如果"Smart Punctuations"打开时,所有直的单撇号都会自动转换为弯撇号。即使您有权访问 UI 文本输入字段的 smartQuotesType 属性,用户也可能会在此处粘贴大撇号,您应该考虑到它们。

Regex and Smart Punctuation in iOS帖子,作者建议在正则表达式中添加 ‘’:

let regexMessaggio2 = /^[a-zA-ZÀ-ÿ ‘’']{2,60}$/;

或者,如果存在任何编码问题,请使用十六进制表示:

let regexMessaggio2 = /^[a-zA-ZÀ-ÿ \u2018\u2019']{2,60}$/;

请注意,当模式为静态时,正则表达式文字符号 (/.../) 优于 RegExp 构造函数符号,即您没有将任何变量传递给正则表达式模式。

关于Javascript RegEx 无法识别移动 iOS 上的撇号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57712081/

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