我在preg_match
与regex
上卡住了
我试图在客户端验证用户输入的值。对于他们的名字和姓氏,我有这个表达式,这是好的preg_match
;
~^([\p{L}-\s']+)$~ui <--- working fine with preg_match
我需要JavaScript正则表达式的等价项
我花了很多时间才弄清楚,什么都不管用。
前;
让-弗朗索瓦·达比加尔传球~^([\p{L}-\s']+)$~ui
Preg_match
我需要它的正则表达式版本。
也想一个版本的PHP Preg_match
和JavaScript Regex
,将接受同样的事情,但与数字[0-9]
。
编辑
var re = /~^([\p{L}-\s']+)$~/i; <----- Not working at all
if (re.test(value) == true){
// it passes regex
}
else{
// it does not
}
字符串示例;
1.在Unicode编码中,使用A-Z+前缀匹配的字符串.... 0-9 -_''正则表达式+前缀匹配
1.Étiène Boîs d 'autêgne〈---相同,但正则表达式没有_或数字
我们会非常感激你的帮助。
2条答案
按热度按时间x3naxklr1#
由于您的
\u00C0-\u017F
范围实际上并不匹配所有字母,您可以使用以下使用Unicode范围的正则表达式解决方案(从XRegExp Unicode categories中提取并修改了一点):注意:从ECMAScript 2018开始,JavaScript
RegExp
支持Unicode property escapes,前提是您使用/u
修饰符:8hhllhi22#
这显然不是复制品!
找到了这个here,有帮助。
我找到了解决办法;
这一行只接受变音符号,字母,数字,空格,-,','这正是我所需要的。
我只需要删除数字,这对我的名字也有好处。