问题标签 [astral-plane]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
155 浏览

javascript - 获取当前现代 Javascript 中字符串的最后一个字符,允许使用代理对(两个代码单元)的 Astral 字符,例如 Emoji

不在基本多语言平面 (BMP) 中的 Unicode 字符(代码点)可能由两个字符(代码单元)组成,称为代理对。

'ab' 是两个代码单元和两个代码点。(所以两个字符和两个字符。)

'a' 是三个代码单元和两个代码点。(所以三个字符和两个字符。)

我的代码不需要使用旧版本的 JavaScript。ES6 或任何最现代的东西。

我如何访问最后一个角色,无论它是否是 Astral 角色?

将字符串拆分为“除了最后一个字符之外的所有字符”和“最后一个字符”也可以。

0 投票
2 回答
576 浏览

php - 检查字符串是否在 BMP 范围内

所以我在 PHP 中寻找一种正确的方法来检测字符串是否在 BMP 范围内(基本多语言平面),但我什么也没找到。在这种特殊情况下,甚至mb-check-encodingmb_detect_encoding也没有提供任何帮助。

所以我写了自己的代码

输出:

布尔(假)

现在我的问题是:

有更好的方法吗?它有什么缺陷吗?