Javascript RegExp dosn';在移动iOS上无法识别撇号

Javascript RegExp dosn';在移动iOS上无法识别撇号,javascript,ios,regex,Javascript,Ios,Regex,我有一个有三个输入的表单。 第一个是唯一的数字,另外两个我可以接受从A到Z的所有字母,空格和撇号。 HTML: <input type="text" name="number" id="number"/> <input type="text" name="name" id="name"/> <input type="text" name="surname" id="surname"/> $("body").on("click","#button",funct

我有一个有三个输入的表单。
第一个是唯一的数字,另外两个我可以接受从A到Z的所有字母,空格和撇号。

HTML

<input type="text" name="number" id="number"/>
<input type="text" name="name" id="name"/>
<input type="text" name="surname" id="surname"/>
$("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}$/

-“感谢@Wiktor Stribiżew的帮助。” 正确的字符串是
newregexp(“^[a-zA-ZÀ-ÿ'']{2,60}$”)

我也发现这有帮助

如果开关打开,所有直撇号将自动转换为卷曲撇号。即使您有权访问UI文本输入字段的
SmartQuoteType
属性,用户也可以在那里粘贴卷曲撇号,您应该对此进行说明

在这篇文章中,作者建议在正则表达式中添加

let regexMessaggio2 = /^[a-zA-ZÀ-ÿ ‘’']{2,60}$/;
或者,如果存在任何编码问题,请使用十六进制表示:

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

请注意,当模式是静态的时,正则表达式文字符号(
/…/
)比正则表达式构造函数符号更可取,也就是说,您没有向正则表达式模式传递任何变量。

我认为这是因为iOS在键入时如何管理撇号。它会把它们变成卷曲的APO。将
newregexp(“^[a-zA-ZÀ-ÿ']{2,60}$”)替换为
newregexp(^[a-zA-ZÀ-ÿ''']{2,60}$”
我已经更改了RegExp的值,但它不工作我已经更改了字符的顺序,它工作了!因此,在末尾,正确的字符串是new RegExp(“^[a-zA-ZÀ-ÿ'']{2,60}$”)