From 9ad7c21e701f827e108de038ff704f1e9b7022da Mon Sep 17 00:00:00 2001 From: jeresig Date: Wed, 22 Sep 2010 07:34:31 -0400 Subject: [PATCH] Make sure the data- number has at least one number in it before passing to isNaN. Thanks to @cms in 8ebb9b22df32fe5739a48087b6e33abb9f5cda49 for a heads-up. --- src/data.js | 2 +- test/unit/data.js | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/data.js b/src/data.js index cf3cf60..3bd4b97 100644 --- a/src/data.js +++ b/src/data.js @@ -157,7 +157,7 @@ jQuery.fn.extend({ data = data === "true" ? true : data === "false" ? false : data === "null" ? null : - !isNaN( data ) ? parseFloat( data ) : + /\d/.test( data ) && !isNaN( data ) ? parseFloat( data ) : rbrace.test( data ) ? jQuery.parseJSON( data ) : data; } catch( e ) {} diff --git a/test/unit/data.js b/test/unit/data.js index 058f23f..03d38c9 100644 --- a/test/unit/data.js +++ b/test/unit/data.js @@ -158,7 +158,7 @@ test(".data(String) and .data(String, Object)", function() { }); test("data-* attributes", function() { - expect(25); + expect(27); var div = jQuery("
"), child = jQuery("
"); @@ -189,6 +189,8 @@ test("data-* attributes", function() { .attr("data-pointbad2", "-.") .attr("data-badjson", "{123}") .attr("data-badjson2", "[abc]") + .attr("data-empty", "") + .attr("data-space", " ") .attr("data-null", "null") .attr("data-string", "test"); @@ -201,6 +203,8 @@ test("data-* attributes", function() { strictEqual( child.data('pointbad2'), "-.", "Bad number read from attribute"); strictEqual( child.data('badjson'), "{123}", "Bad number read from attribute"); strictEqual( child.data('badjson2'), "[abc]", "Bad number read from attribute"); + strictEqual( child.data('empty'), "", "Empty string read from attribute"); + strictEqual( child.data('space'), " ", "Empty string read from attribute"); strictEqual( child.data('null'), null, "Primitive null read from attribute"); strictEqual( child.data('string'), "test", "Typical string read from attribute"); -- 1.7.10.4