From ad62f1099cdb8782d20ca1296ea73467bc35fce7 Mon Sep 17 00:00:00 2001 From: Neil Lalonde Date: Tue, 9 Jan 2018 15:51:47 -0500 Subject: [PATCH] FIX: censored words should support * as wildcard --- app/assets/javascripts/pretty-text/censored-words.js.es6 | 2 +- test/javascripts/lib/pretty-text-test.js.es6 | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/pretty-text/censored-words.js.es6 b/app/assets/javascripts/pretty-text/censored-words.js.es6 index 58900460bcb..ffb0cce3aeb 100644 --- a/app/assets/javascripts/pretty-text/censored-words.js.es6 +++ b/app/assets/javascripts/pretty-text/censored-words.js.es6 @@ -1,5 +1,5 @@ function escapeRegexp(text) { - return text.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&'); + return text.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&').replace(/\*/g, "\S*"); } export function censorFn(censoredWords, censoredPattern, replacementLetter) { diff --git a/test/javascripts/lib/pretty-text-test.js.es6 b/test/javascripts/lib/pretty-text-test.js.es6 index 65803e8b188..89704ee4cbd 100644 --- a/test/javascripts/lib/pretty-text-test.js.es6 +++ b/test/javascripts/lib/pretty-text-test.js.es6 @@ -14,7 +14,7 @@ const rawOpts = { default_code_lang: 'auto', censored_pattern: '\\d{3}-\\d{4}|tech\\w*' }, - censoredWords: 'shucks|whiz|whizzer|a**le', + censoredWords: 'shucks|whiz|whizzer|a**le|badword*', getURL: url => url }; @@ -604,6 +604,9 @@ QUnit.test("censoring", assert => { assert.cooked("I have a pen, I have an a**le", "

I have a pen, I have an ■■■■■

", "it escapes regexp chars"); + assert.cooked("No badword or apple here plz.", + "

No ■■■■■■■ or ■■■■■ here plz.

", + "it handles * as wildcard"); }); QUnit.test("code blocks/spans hoisting", assert => {