From 03a70ef69c415d561dedcf3c5d453ce8944cd117 Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 1 Mar 2019 15:23:45 +1100 Subject: [PATCH] FIX: allow underscore and dash in username search _ and - are technically punctuations, but we allow them in usernames so accept them in search --- app/assets/javascripts/discourse/lib/user-search.js.es6 | 4 ++-- test/javascripts/lib/user-search-test.js.es6 | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/discourse/lib/user-search.js.es6 b/app/assets/javascripts/discourse/lib/user-search.js.es6 index 43359845e72..953aeba7ae2 100644 --- a/app/assets/javascripts/discourse/lib/user-search.js.es6 +++ b/app/assets/javascripts/discourse/lib/user-search.js.es6 @@ -112,13 +112,13 @@ function organizeResults(r, options) { return results; } -// all punctuations except for . which is allowed in usernames +// all punctuations except for -, _ and . which are allowed in usernames // note: these are valid in names, but will end up tripping search anyway so just skip // this means searching for `sam saffron` is OK but if my name is `sam$ saffron` autocomplete // will not find me, which is a reasonable compromise // // we also ignore if we notice a double space or a string that is only a space -const ignoreRegex = /([\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,\-\/:;<=>?\[\]^_`{|}~])|\s\s|^\s$/; +const ignoreRegex = /([\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,\/:;<=>?\[\]^`{|}~])|\s\s|^\s$/; function skipSearch(term, allowEmails) { if (term.indexOf("@") > -1 && !allowEmails) { diff --git a/test/javascripts/lib/user-search-test.js.es6 b/test/javascripts/lib/user-search-test.js.es6 index fc676db348c..c0d3cca04e2 100644 --- a/test/javascripts/lib/user-search-test.js.es6 +++ b/test/javascripts/lib/user-search-test.js.es6 @@ -89,6 +89,8 @@ QUnit.test("it skips a search depending on punctuations", async assert => { let allowedTerms = [ "@sam sam", // double space is not allowed "@sam.sam", + "@sam_sam", + "@sam-sam", "@" ];