javascript - Regular Expression to match two similar word -
i run problem regular expression won't match 2 similar words:
example:
bitcoin , bitcoin atm
regular expression:
new regexp("(?:^|\\b)(bitcoin|bitcoin atm|test bitcoin)(?!\\w)");
here's demo :
(function myfunction() { var str = "bitcoin , bitcoin atm , test , test , new test"; var patt = new regexp("(?:^|\\b)(bitcoin|bitcoin atm|test|test a|new test)(?!\\w)", "g"); var res = str.match(patt); document.getelementbyid("demo").innerhtml = res; })()
p{ font-size: 30px; }
<p id="demo"></p>
move more specific matches higher priority in matching pattern.
(function myfunction() { var str = "bitcoin , bitcoin atm , test , test , new test"; var patterns = ['bitcoin', 'bitcoin atm','test', 'test a', 'new text']; patterns.sort(function(a,b){return b.length - a.length}) var patt = new regexp("(?:^|\\b)(" + patterns.join('|') + ")(?!\\w)", "g"); var res = str.match(patt); document.getelementbyid("demo").innerhtml = res; })()
p{ font-size: 30px; }
<p id="demo"></p>
Comments
Post a Comment