使用正则表达式的Javascript十六进制数字验证

使用正则表达式的Javascript十六进制数字验证,javascript,regex,validation,hex,Javascript,Regex,Validation,Hex,如果使用正则表达式的十六进制数有效,则我的函数应返回true 注:十六进制数可能包含小数点(.)(例如:2E6.A3) 十六进制:0123456789abcdef 我列举了我的主要观点的例子 函数返回数(字符串){ 变量regExp=/^[-+]?[0-9A-Fa-f]+\[0-9A-Fa-f]$/ 返回(isAString(string)和®Exp.test(string)) } 函数main(){ 警报(“true:+returnHexaNumber('2E6')) 警报(“true

如果使用正则表达式的十六进制数有效,则我的函数应返回true 注:十六进制数可能包含小数点(.)(例如:2E6.A3)

十六进制:0123456789abcdef

我列举了我的主要观点的例子

函数返回数(字符串){
变量regExp=/^[-+]?[0-9A-Fa-f]+\[0-9A-Fa-f]$/
返回(isAString(string)和®Exp.test(string))
}
函数main(){
警报(“true:+returnHexaNumber('2E6'))
警报(“true:+returnHexaNumber('2E6.A3'))
警报(“假:+returnHexaNumber('ZZZ'))
警报(“错误:+returnHexaNumber(“”))
警报(“错误:+0号”)
警报(“假:+returnHexaNumber('10'))

}
我将
\.
\.?
一起设置为可选,第二个
[0-9A-Fa-f]
通过添加
*
获取多个字符

function returnHexaNumber(s) {
    var regExp = /^[-+]?[0-9A-Fa-f]+\.?[0-9A-Fa-f]*?$/;
    return (typeof s === 'string' && regExp.test(s));
}
function main() {
    console.log("true : " + returnHexaNumber('2E6'));
    console.log("true : " + returnHexaNumber('2E6.A3'));
    console.log("false : " + returnHexaNumber('ZZZ'));
    console.log("false : " + returnHexaNumber(''));
    console.log("false : " + returnHexaNumber(0));
    console.log("true : " + returnHexaNumber('10'));
}

main();
'10'
不应该返回true吗?我换了上次的测试


JSBin:

问题是什么?另外,您的代码片段没有做任何事情,可能是因为您没有调用
main
。请参阅。