javascript - 如何将 javascript regexp 中的 Euro € 符号与八进制、十六进制或 unicode 元字符匹配?

标签 javascript regex unicode hex octal

我需要创建在正则表达式中使用的十六进制和八进制元字符的样本。我在网上找到link € 的八进制代码是 200,十六进制代码是 80 但是当我尝试将 € 与正则表达式 \200\x80< 匹配时 它不匹配 € 符号。只有 unicode 元字符 \u20AC 可以正常工作。我的代码是否有误,或者无法将欧元符号与 oct 和 hex 元字符相匹配?我以前在其他 Angular 色上没有遇到过这种问题。

var a = "200€"

console.log(a.search(/\200/g));     //-1
console.log(a.search(/\x80/g));     //-1
console.log(a.search(/\u20AC/g));   //3

最佳答案

我刚刚发现,以英镑 £为例,英镑£的unicode是00A3 或缩短的 A3 可以在 javascript 正则表达式中用作 \u00A3 {四个十六进制数字元字符}\xA3 {两个十六进制数字元字符}A3 十六进制数解析为八进制数等于 243 这意味着 \243 也作为 {三个八进制数字} 元字符匹配 £ 的问题是它的 unicode 是 20AC 这意味着它可以用作 \u20AC {四个十六进制数字元字符} ,但它不能缩短为 {两个十六进制数字},而且它不是以 00 开头。 20AC 解析为八进制等于 20254 是什么原因导致它也不能用作{三个八进制数字}

综上所述,\xdd正则元字符只能匹配两位十六进制代码表示的字符,三位八进制代码可以匹配的字符可以匹配为\ddd。所以 € U+20AC, ❤ U+2764, ☯ U+262F, ❄ U+2744 和数千其他字符只能与 javascript 中的 \udddd 元字符匹配。

关于javascript - 如何将 javascript regexp 中的 Euro € 符号与八进制、十六进制或 unicode 元字符匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42544353/

相关文章:

javascript - 动画 SVG anchor

javascript - 在 HTML5 音频标签上使用 javascript 寻找栏处理

javascript - 使用 ng-repeat 的 AngularJS 嵌套数组

javascript - 使用正则表达式提取值

javascript - 获取从行首到任何内容的除换行符之外的所有空白?

regex - 协调正则表达式行为

javascript - 使用javascript暂停背景滚动以允许固定元素进行幻灯片放映

unicode - 如何使Tcl_WriteChars支持Unicode?

regex - 如何在 Haskell 中查找和替换 unicode 字符?

python - 是否可以构造一个utf-8编解码器无法编码的unicode字符串?