aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimmy Willison <timmywillisn@gmail.com>2015-05-04 10:49:21 -0400
committerTimmy Willison <timmywillisn@gmail.com>2015-05-04 10:49:21 -0400
commit172cad80ac635d8900aa6a3504c89f38b320488e (patch)
treec864a413d4bc712f2185550397febd66a4af4445
parent0e790985a76fd813a6e56696c87abeed5a6cf63b (diff)
downloadjquery-172cad80ac635d8900aa6a3504c89f38b320488e.tar.gz
jquery-172cad80ac635d8900aa6a3504c89f38b320488e.zip
Data: camelCasing should not ignore case
Fixes gh-2070
-rw-r--r--src/core.js2
-rw-r--r--test/unit/data.js10
2 files changed, 11 insertions, 1 deletions
diff --git a/src/core.js b/src/core.js
index 0c72801d6..b3e9a7103 100644
--- a/src/core.js
+++ b/src/core.js
@@ -27,7 +27,7 @@ var
// Matches dashed string for camelizing
rmsPrefix = /^-ms-/,
- rdashAlpha = /-([a-z])/gi,
+ rdashAlpha = /-([a-z])/g,
// Used by jQuery.camelCase as callback to replace()
fcamelCase = function( all, letter ) {
diff --git a/test/unit/data.js b/test/unit/data.js
index aeca493b7..c08550b1b 100644
--- a/test/unit/data.js
+++ b/test/unit/data.js
@@ -615,6 +615,16 @@ test(".data always sets data with the camelCased key (gh-2257)", function() {
});
});
+test( ".data should not strip more than one hyphen when camelCasing (gh-2070)", function() {
+ expect( 3 );
+ var div = jQuery( "<div data-nested-single='single' data-nested--double='double' data-nested---triple='triple'></div>" ).appendTo( "#qunit-fixture" ),
+ allData = div.data();
+
+ equal( allData.nestedSingle, "single", "Key is correctly camelCased" );
+ equal( allData[ "nested-Double" ], "double", "Key with double hyphens is correctly camelCased" );
+ equal( allData[ "nested--Triple" ], "triple", "Key with triple hyphens is correctly camelCased" );
+});
+
test(".data supports interoperable hyphenated/camelCase get/set of properties with arbitrary non-null|NaN|undefined values", function() {
var div = jQuery("<div/>", { id: "hyphened" }).appendTo("#qunit-fixture"),