gpt4 book ai didi

javascript - 使用正则表达式和 Yup 来验证仅包含扩展拉丁字母和至少 2 个单词的全名

转载 作者:行者123 更新时间:2023-12-02 02:18:22 24 4
gpt4 key购买 nike

我有一个 Reactjs 站点,我在其中使用 Formik 和 Yup 来验证注册流程中的字段。因为我不想允许使用日语字符或任何特殊字符,而只允许使用扩展拉丁字母(以便用户可以使用 A-Z、a-z,但也可以使用例如 ÅäÖÛ)。

.matches(
/^([A-Za-z\u00C0-\u00D6\u00D8-\u00f6\u00f8-\u00ff\s]*)$/gi,
'Name can only contain Latin letters.'
)

这很好用,但我也希望用户至少输入 2 个名称。我知道你可以链接 Yup 所以我猜另一个 .matches() 里面有一些正则表达式或其他一些 Yup 规则,但我似乎找不到我正在寻找的确切内容......

提前致谢! <3

更新!

这是 Phan 的答案,我可能最终会使用:###

.matches(
/^([A-Za-z\u00C0-\u00D6\u00D8-\u00f6\u00f8-\u00ff\s]*)$/gi,
'Name can only contain Latin letters.'
)
.matches(/^\s*[\S]+(\s[\S]+)+\s*$/gms, 'Please enter your full name.')

这是我发现也适合我的另一个解决方案:

.matches(
/^([A-Za-z\u00C0-\u00D6\u00D8-\u00f6\u00f8-\u00ff\s]*)$/g,
'Name can only contain Latin letters.'
)
.matches(
/^(?:([A-Za-z\u00C0-\u00D6\u00D8-\u00f6\u00f8-\u00ff\s]*)) (?:([A-Za-z\u00C0-\u00D6\u00D8-\u00f6\u00f8-\u00ff\s]*))$/g,
'Please enter your full name.'
)

最佳答案

因为你已经匹配了非拉丁字母,所以第二个只需要使用非空格标签 \S 而不是单词标签 \w验证。

.matches(
/^([A-Za-z\u00C0-\u00D6\u00D8-\u00f6\u00f8-\u00ff\s]*)$/gi,
'Name can only contain Latin letters.'
)
.matches(/^\s*[\S]+(\s[\S]+)+\s*$/gms,'Please enter your full name.')

<强> Regex Demo

关于javascript - 使用正则表达式和 Yup 来验证仅包含扩展拉丁字母和至少 2 个单词的全名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66817166/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com