- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我想匹配非洲约鲁巴语“ẹ́”中的这个字符。通常这是通过在点变音符号下组合 'é' 和 '\u0323' 来实现的。我发现:
'é\u0323'.match(/[é]\u0323/) works but
'ẹ́'.match(/[é]\u0323/) does not work.
我不只是想匹配 e。我想匹配所有组合。现在,我的解决方案涉及枚举所有组合。像这样:/[ÁÀĀÉÈĒẸE̩Ẹ́É̩Ẹ̀È̩Ẹ̄Ē̩ÍÌĪÓÒŌỌO̩Ọ́Ó̩Ọ̀Ò̩Ọ̄Ō̩ÚÙŪṢS̩áàāéèēẹe̩ẹ́é̩ẹ̀è̩ẹ̄ē̩íìīóòōọo̩ọ́ó̩ọ̀ò̩ọ̄ō̩úùūṣs̩]/
难道没有更短更好的方法来做到这一点,或者在 unicode 变音符号组合字符的 javascript 中进行正则表达式匹配不是这么容易吗?谢谢
最佳答案
通常解决方案是使用 Unicode properties and/or scripts ,但 JavaScript 本身并不支持它们。
但是存在库 XRegExp这增加了这种支持。有了这个库,你可以使用
\p{L}
:匹配任何语言的任何类型的字母。
\p{M}
:用于与另一个字符组合的字符(例如重音符号、变音符号、封闭框等)。
所以你的 Angular 色类看起来像这样:
[\p{L}\p{M}]+
这将匹配 Unicode 表中所有可能的字母。
如果要限制的话可以看看Unicode脚本并将 \p{L}
替换为脚本,它们会收集某些语言的所有字母。例如\p{Latin}
用于所有拉丁字母或 \p{Cyrillic}
用于所有西里尔字母。
关于Javascript 正则表达式 + Unicode 变音符号组合字符`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17357716/
COW 不是奶牛,是 Copy-On-Write 的缩写,这是一种是复制但也不完全是复制的技术。 一般来说复制就是创建出完全相同的两份,两份是独立的: 但是,有的时候复制这件事没多大必要
我是一名优秀的程序员,十分优秀!