如果使用正则表达式将六进制数有效,则我的函数应返回true 注意:十六进制数字可能包含小数点(。)(例如:2E6.A3)
十六进制:0 1 2 3 4 5 6 7 8 9 A B C D E F
我在main()上提供了示例
function returnHexaNumber(string) {
var regExp = /^[-+]?[0-9A-Fa-f]+\.[0-9A-Fa-f]?$/
return (isAString(string) && regExp.test(string))
}
function main() {
alert("true : " + returnHexaNumber('2E6'))
alert("true : " + returnHexaNumber('2E6.A3'))
alert("false : " + returnHexaNumber('ZZZ'))
alert("false : " + returnHexaNumber(''))
alert("false : " + returnHexaNumber(0))
alert("false : " + returnHexaNumber('10'))
}
答案 0 :(得分:0)
我通过\.
选择了\.?
,第二个[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吗?我改变了最后一次测试。