我有一个输入文本字段的模式:/[\p{L}\'.\- ]{3,30}/
我的目的是接受世界上几个字母表上最广泛的人名(拉丁文、中文等)。它在 Regex101 中进行了测试,效果很好。在其他测试仪上不起作用,但我的主要问题如下:
<form action="mailto:myemail@emailserver.com" id="formula" method="post" enctype="multipart/form-data"
name="formname" class="form-group pt-3" autocomplete="on" ng-submit="register()" novalidate>
<input type="text" name="nombre" ng-pattern="/[\p{L}\'.\- ]{3,30}/">
我分享我的代码供您检查:https ://regex101.com/r/gOvO2M/8 它跳过特殊字符、跳过符号、跳过数字,但是当我在浏览器中看到实时 html 时,它不能正常工作.
在错误消息中,出于验证目的,我输入:
<p class="formu-error" ng-show="formname.nombre.$touched && formname.nombre.$invalid">Please, write a valid name.</p>
问题是在测试时,我只写字母(没有空格,没有连字符,因为所有这些都是可选的)并且仍然给 mem 错误消息。为什么?
也许是因为我正在使用\p{L}
并且仅在服务器中有效,当我在 PHP 中编写服务器验证时?