名字需要法语特殊字符 unicode [重复]

问题描述 投票:0回答:2

在我正在开发的项目中,我想添加增强功能,用户可以在名字字段中添加他们的法语名字。

我想包含法语的所有特殊字符

现在在当前代码中,当我尝试在名字中添加法语字符时,会抛出错误。

请参阅下面的名字验证 JS 代码。现在代码中存在。

var firstNameRegex  = /^[a-zA-Z\u3000\u3400-\u4DBF\u4E00-\u9FFF\-\'\s]{1,45}$/;

我尝试了5个像这样的特殊字符

var firstNameRegex  = /^[a-zA-Z\.\u3000\u3400-\u4DBF\u4E00-\u9FFF\u0105\u0107\u0119\u0142\u0144\u00f3\u015b\u017a\u017c\-\'\s]{1,45}$/;

但是单独包含所有字符 unicode 似乎有点冗长 有谁知道如何用更简单的代码包含所有法语字符。

我尝试过这个组合

        var firstNameRegex  = /^[a-zA-Z\u3000\u3400-\u4DBF\u4E00-\u9FFF\u00C0-\u017F\-\'\s]{1,45}$/;

但这不起作用

javascript unicode wcs
2个回答
-1
投票

既然你是双语言开发者,我建议你深入研究所有以“.locale”或“.toLocal”开头的 JS 函数

利用这些函数可以帮助您处理非英语语言的日期、字符串、数字、货币等。

这是一个带有字符串的示例...(如果您愿意,也可以使用法语名称)

const a = 'réservé'; // With accents, lowercase

const b = 'RESERVE'; // No accents, uppercase


console.log(a.localeCompare(b));

// Expected output: 1


console.log(a.localeCompare(b,'en', { sensitivity: 'base' }));

// Expected output: 0

这个例子和有关此事的进一步阅读来自......

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare

非英语语言表单验证应该包含此类函数,而不是 regex() 等。


-2
投票

你可以修改正则表达式-

  var firstNameRegex  = /^[a-zA-Z\u00C0-\u017F\.\u3000\u3400-\u4DBF\u4E00-\u9FFF\-\'\s]{1,45}$/;

希望这有效

© www.soinside.com 2019 - 2024. All rights reserved.