在我正在开发的项目中,我想添加增强功能,用户可以在名字字段中添加他们的法语名字。
我想包含法语的所有特殊字符
现在在当前代码中,当我尝试在名字中添加法语字符时,会抛出错误。
请参阅下面的名字验证 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}$/;
但这不起作用
既然你是双语言开发者,我建议你深入研究所有以“.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
这个例子和有关此事的进一步阅读来自......
非英语语言表单验证应该包含此类函数,而不是 regex() 等。
你可以修改正则表达式-
var firstNameRegex = /^[a-zA-Z\u00C0-\u017F\.\u3000\u3400-\u4DBF\u4E00-\u9FFF\-\'\s]{1,45}$/;