From 2b5b4ebbd78ce10cbbe2a6f057feea615fc69629 Mon Sep 17 00:00:00 2001 From: Wesley Walser Date: Sun, 19 Aug 2012 22:28:36 -0400 Subject: [PATCH] Fix #12350. Remove BOM in jQuery.trim. Close gh-897. --- AUTHORS.txt | 3 ++- src/core.js | 4 ++-- test/unit/core.js | 7 ++++++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/AUTHORS.txt b/AUTHORS.txt index 01c8d76b0..e5a87c7e0 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -130,4 +130,5 @@ Uri Gilad Chris Faulkner Elijah Manor Daniel Chatfield -Nikita Govorov \ No newline at end of file +Nikita Govorov +Wesley Walser \ No newline at end of file diff --git a/src/core.js b/src/core.js index 89e25978c..f9ee24852 100644 --- a/src/core.js +++ b/src/core.js @@ -37,8 +37,8 @@ var core_rnotwhite = /\S/, core_rspace = /\s+/, - // IE doesn't match non-breaking spaces with \s - rtrim = core_rnotwhite.test("\xA0") ? (/^[\s\xA0]+|[\s\xA0]+$/g) : /^\s+|\s+$/g, + // IE doesn't match many whitespace characters with \s + rtrim = core_rnotwhite.test("\xA0") ? /^[\s\xA0\uFEFF]+|[\s\xA0\uFEFF]+$/g : /^\s+|\s+$/g, // A simple way to check for HTML strings // Prioritize #id over to avoid XSS via location.hash (#9521) diff --git a/test/unit/core.js b/test/unit/core.js index 44920edcf..8b8b7afd8 100644 --- a/test/unit/core.js +++ b/test/unit/core.js @@ -264,7 +264,7 @@ test("noConflict", function() { }); test("trim", function() { - expect(9); + expect(13); var nbsp = String.fromCharCode(160); @@ -278,6 +278,11 @@ test("trim", function() { equal( jQuery.trim( null ), "", "Null" ); equal( jQuery.trim( 5 ), "5", "Number" ); equal( jQuery.trim( false ), "false", "Boolean" ); + + equal( jQuery.trim(" "), "", "space should be trimmed" ); + equal( jQuery.trim("ipad\xA0"), "ipad", "nbsp should be trimmed" ); + equal( jQuery.trim("\uFEFF"), "", "zwsp should be trimmed" ); + equal( jQuery.trim("\uFEFF \xA0! | \uFEFF"), "! |", "leading/trailing should be trimmed" ); }); test("type", function() { -- 2.39.5