JavaScript 和 VBScript 中支持 Unicode 的 isNumeric() 函数

发布于 2024-12-04 02:59:38 字数 158 浏览 1 评论 0原文

我无法为 javaScript 和 VBScript 找到 Unicode 支持的 isNumeric() 函数。这些函数都有,但不支持 unicode。

即使没有 Unicode 支持的版本,那么两种语言中是否都有 API 支持 isNumeric() 或 isDigit() 功能?

I am unable to find a Unicode supported isNumeric() function for javaScript and VBScript. The functions are there, but are not unicode supported.

Even if there are no Unicode suported versions, then are there any API in both languages supporting isNumeric() or isDigit() functionality?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

遇到 2024-12-11 02:59:38

几周前我遇到了同样的问题,我使用的解决方案是根据可能定义数字的 unicode 字符代码范围检查我的字符代码。

它们在这里(范围来自 PERL 源,因为他们已经完成了工作!!):
<代码>

var isDigit = function(ch)
{
  var iCode = ch.charCodeAt(0)
  return ( 0x0030 <= iCode && iCode <= 0x0039 )
      || ( 0x0660 <= iCode && iCode <= 0x0669 )
      || ( 0x06F0 <= iCode && iCode <= 0x06F9 )
      || ( 0x0966 <= iCode && iCode <= 0x096F )
      || ( 0x09E6 <= iCode && iCode <= 0x09EF )
      || ( 0x0A66 <= iCode && iCode <= 0x0A6F )
      || ( 0x0AE6 <= iCode && iCode <= 0x0AEF )
      || ( 0x0B66 <= iCode && iCode <= 0x0B6F )
      || ( 0x0BE6 <= iCode && iCode <= 0x0BEF )
      || ( 0x0C66 <= iCode && iCode <= 0x0C6F )
      || ( 0x0CE6 <= iCode && iCode <= 0x0CEF )
      || ( 0x0D66 <= iCode && iCode <= 0x0D6F )
      || ( 0x0E50 <= iCode && iCode <= 0x0E59 )
      || ( 0x0ED0 <= iCode && iCode <= 0x0ED9 )
      || ( 0x0F20 <= iCode && iCode <= 0x0F29 )
      || ( 0x1040 <= iCode && iCode <= 0x1049 )
      || ( 0x17E0 <= iCode && iCode <= 0x17E9 )
      || ( 0x1810 <= iCode && iCode <= 0x1819 )
      || ( 0x1946 <= iCode && iCode <= 0x194F )
      || ( 0x19D0 <= iCode && iCode <= 0x19D9 )
      || ( 0xFF10 <= iCode && iCode <= 0xFF19 )
      || ( 0x104A0 <= iCode && iCode <= 0x104A9 )
      || ( 0x1D7CE <= iCode && iCode <= 0x1D7FF )
}

例如,在泰米尔语中,“一”的字符代码是 0x0BE7,参见。 http://www.fileformat.info/info/unicode/char/BE7 /index.htm,您可以看到它是范围 0x0BE6 => 的一部分。 0x0BEF 所以没问题。

I have come upon the same problem a couple of weeks ago, and the solution I used was to check my character code against the unicode char code ranges that may define a digit.

Here they are (the ranges come from PERL sources, as they already did the work!!):

var isDigit = function(ch)
{
  var iCode = ch.charCodeAt(0)
  return ( 0x0030 <= iCode && iCode <= 0x0039 )
      || ( 0x0660 <= iCode && iCode <= 0x0669 )
      || ( 0x06F0 <= iCode && iCode <= 0x06F9 )
      || ( 0x0966 <= iCode && iCode <= 0x096F )
      || ( 0x09E6 <= iCode && iCode <= 0x09EF )
      || ( 0x0A66 <= iCode && iCode <= 0x0A6F )
      || ( 0x0AE6 <= iCode && iCode <= 0x0AEF )
      || ( 0x0B66 <= iCode && iCode <= 0x0B6F )
      || ( 0x0BE6 <= iCode && iCode <= 0x0BEF )
      || ( 0x0C66 <= iCode && iCode <= 0x0C6F )
      || ( 0x0CE6 <= iCode && iCode <= 0x0CEF )
      || ( 0x0D66 <= iCode && iCode <= 0x0D6F )
      || ( 0x0E50 <= iCode && iCode <= 0x0E59 )
      || ( 0x0ED0 <= iCode && iCode <= 0x0ED9 )
      || ( 0x0F20 <= iCode && iCode <= 0x0F29 )
      || ( 0x1040 <= iCode && iCode <= 0x1049 )
      || ( 0x17E0 <= iCode && iCode <= 0x17E9 )
      || ( 0x1810 <= iCode && iCode <= 0x1819 )
      || ( 0x1946 <= iCode && iCode <= 0x194F )
      || ( 0x19D0 <= iCode && iCode <= 0x19D9 )
      || ( 0xFF10 <= iCode && iCode <= 0xFF19 )
      || ( 0x104A0 <= iCode && iCode <= 0x104A9 )
      || ( 0x1D7CE <= iCode && iCode <= 0x1D7FF )
}

By example, in Tamil, the character code for "one" is 0x0BE7, cf. http://www.fileformat.info/info/unicode/char/BE7/index.htm, and you can see it is part of the range 0x0BE6 => 0x0BEF so it's a-ok.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文