function hex(s) {
return s && s.toLowerCase() !== 'nan' && parseInt(s, 16).toString(16) === s.toLowerCase() && (parseInt(s, 10) + '') !== s;
}
function okhex(s) {
ok(hex(s), s);
}
function failhex(s) {
ok(!hex(s), s);
}
test('典型的16进制数字', function() {
okhex('1a23');
okhex('123b');
okhex('c123');
okhex('a');
});
test('数字,以及包含特殊字符的数字', function() {
failhex('123');
failhex('1z23');
failhex('123z');
failhex('z123');
});
test('特殊字符', function() {
failhex('z');
failhex('NaN');
failhex('nan');
failhex('');
});
External resources loaded into this fiddle:
<div id="qunit-header"><h1>不使用正则检测指定字符串是否一定是16进制数字</h1></div>
<h2 id="qunit-banner"></h2>
<div id="qunit-testrunner-toolbar"></div>
<h2 id="qunit-userAgent"></h2>
<ol id="qunit-tests"></ol>
<div id="qunit-fixture">test markup, will be hidden</div>