gpt4 book ai didi

Javascript Regex - 非拉丁字符和它们之间的空格

转载 作者:行者123 更新时间:2023-11-30 13:46:10 25 4
gpt4 key购买 nike

我需要正则表达式来验证名字和姓氏字段。

例如,人们可以有 2 个名字,因此它应该能够处理多个非拉丁单词。

([^\x00-\x7F]|\w)+

这是我用来验证拉丁+非拉丁字符的方法,但它不支持多个单词。

如果我输入:JĀNIS BĀNIS例如,它不起作用!

最佳答案

如果在 UCD 数据库中查询 LATIN 特定属性,即字母和数字
将此正则表达式 ( \w ) 用于拉丁语:

[\p{Block=Basic_Latin}\p{Block=Latin_1_Supplement}\p{Block=Latin_Extended_A}\p{Block=Latin_Extended_Additional}\p{Block=Latin_Extended_B}\p{Block=Latin_Extended_C}\p{Block=Latin_Extended_D}\p{Block=Latin_Extended_E}\p{Script=Latin}\p{Script_Extensions=Latin}](?<=\w)

产生这个 JavaScript 可用类:

[0-9A-Z_a-z\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02B8\u02E0-\u02E4\u0363-\u036F\u0485-\u0486\u0951-\u0952\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u20F0\u212A-\u212B\u2132\u214E\u2183-\u2184\u2C60-\u2C7F\uA722-\uA788\uA78B-\uA7BF\uA7C2-\uA7C6\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB67\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A]

_____________________

对拉丁语的标点符号 (\p{P}) 做同样的事情:

[\p{Block=Basic_Latin}\p{Block=Latin_1_Supplement}\p{Block=Latin_Extended_A}\p{Block=Latin_Extended_Additional}\p{Block=Latin_Extended_B}\p{Block=Latin_Extended_C}\p{Block=Latin_Extended_D}\p{Block=Latin_Extended_E}\p{Script=Latin}\p{Script_Extensions=Latin}](?<=\p{P})

产生这个 JavaScript 可用类:

[!-#%-*,-/:-;?-@[-]_{}\u00A1\u00A7\u00AB\u00B6-\u00B7\u00BB\u00BF\u10FB\uA92E]

____________

两者都可以与空格结构 \s 结合以获得合理的
名称验证正则表达式。

/^(?:[\s!-#%-*,-\/:-;?-@[-]_{}\u00A1\u00A7\u00AB\u00B6-\u00B7\u00BB\u00BF\u10FB\uA92E]*[0-9A-Z_a-z\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02B8\u02E0-\u02E4\u0363-\u036F\u0485-\u0486\u0951-\u0952\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u20F0\u212A-\u212B\u2132\u214E\u2183-\u2184\u2C60-\u2C7F\uA722-\uA788\uA78B-\uA7BF\uA7C2-\uA7C6\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB67\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A]+)+[\s!-#%-*,-\/:-;?-@[-]_{}\u00A1\u00A7\u00AB\u00B6-\u00B7\u00BB\u00BF\u10FB\uA92E]*$/

展开

^
(?:
[\s!-#%-*,-/:-;?-@[-]_{}\u00A1\u00A7\u00AB\u00B6-\u00B7\u00BB\u00BF\u10FB\uA92E]*
[0-9A-Z_a-z\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02B8\u02E0-\u02E4\u0363-\u036F\u0485-\u0486\u0951-\u0952\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u20F0\u212A-\u212B\u2132\u214E\u2183-\u2184\u2C60-\u2C7F\uA722-\uA788\uA78B-\uA7BF\uA7C2-\uA7C6\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB67\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A]+
)+
[\s!-#%-*,-/:-;?-@[-]_{}\u00A1\u00A7\u00AB\u00B6-\u00B7\u00BB\u00BF\u10FB\uA92E]*
$

关于Javascript Regex - 非拉丁字符和它们之间的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59290790/

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