繁体   English   中英

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

[英]Javascript Regex - Non Latin Characters and Whitespace in between them

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

例如,人们可以有 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]*  
$

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM