38fb5103beda4b0f705574c541b290b8b253e670 chmalee Mon Sep 22 12:23:38 2025 -0700 Remove 0-length characters from search strings, refs #36387 diff --git src/hg/js/hgTracks.js src/hg/js/hgTracks.js index 971d3afc33f..0597787ea69 100644 --- src/hg/js/hgTracks.js +++ src/hg/js/hgTracks.js @@ -4987,30 +4987,31 @@ return false; } // redirect to hgBlat if the input looks like a DNA sequence // minimum length=19 so we do not accidentally redirect to hgBlat for a gene identifier // like ATG5 var dnaRe = new RegExp("^(>[^\n\r ]+[\n\r ]+)?(\\s*[actgnACTGN \n\r]{19,}\\s*)$"); if (dnaRe.test(newPos)) { var blatUrl = "hgBlat?type=BLAT%27s+guess&userSeq="+newPos; window.location.href = blatUrl; return false; } // helper functions for checking whether a plain chrom name was searched for term = encodeURIComponent(genomePos.get().replace(/^[\s]*/,'').replace(/[\s]*$/,'')); + term = term.replace(/[\u200b-\u200d\u2060\uFEFF]/g,''); // remove 0-width chars function onSuccess(jqXHR, textStatus) { if (jqXHR.chromName !== null) { imageV2.markAsDirtyPage(); imageV2.navigateInPlace("db=" + getDb() + "&position=" + encodeURIComponent(newPos), null, false); window.scrollTo(0,0); } else { window.location.assign("../cgi-bin/hgSearch?search=" + term + "&hgsid="+ getHgsid()); } } function onFail(jqXHR, textStatus) { window.location.assign("../cgi-bin/hgSearch?search=" + term + "&hgsid="+ getHgsid()); } // redirect to search disambiguation page if it looks like we didn't enter a regular position: var canonMatch = newPos.match(canonicalRangeExp);