JavaScript和VBScript中支持Unicode的isNumeric()函数
我找不到用于javaScript和VBScript的Unicode支持的isNumeric()函数。函数存在,但不支持unicodeJavaScript和VBScript中支持Unicode的isNumeric()函数,javascript,html,unicode,internationalization,vbscript,Javascript,Html,Unicode,Internationalization,Vbscript,我找不到用于javaScript和VBScript的Unicode支持的isNumeric()函数。函数存在,但不支持unicode 即使没有支持Unicode的版本,两种语言中是否都有支持isNumeric()或isDigit()功能的API?几周前我遇到了同样的问题,我使用的解决方案是对照可能定义数字的Unicode字符码范围检查字符码 它们在这里(范围来自PERL源代码,因为它们已经完成了工作!!): var isDigit=函数(ch) { var iCode=ch.charCodeA
即使没有支持Unicode的版本,两种语言中是否都有支持isNumeric()或isDigit()功能的API?几周前我遇到了同样的问题,我使用的解决方案是对照可能定义数字的Unicode字符码范围检查字符码 它们在这里(范围来自PERL源代码,因为它们已经完成了工作!!):
var isDigit=函数(ch)
{
var iCode=ch.charCodeAt(0)
return(0x0030)你能举个失败的例子吗?Javascript在使用不同语言/奇怪的字符时表现得很好,所以也许你只需要一个很好的isNumeric函数实现,比如这里的用法呢?这是一个很长的过程。我得到的是,如果我需要isNumeric()300种语言的函数,我必须检查所有的代码范围…呃…那会很忙的,伙计!:(这些应该是unicode中定义的所有数字范围。每种语言都没有自己的数字范围!编辑:如果您认为javascript中有一个内置的isNumeric函数或等效函数可以做到这一点,我担心您错了……而且没有使用像“(input-0)==input”这样的强制转换为int的代码会有用的。哦,是的,你大概是对的。有两个数字代码需要检查……谢谢,伙计。这可能会解决我的问题。
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 )
}