NovaYear
NovaYear

Reputation: 167

javascript text match count and regex spaces not work

i have a ploblem. im genereting a small scipt for text matches cont and ordering match counts. click to see jsfiddle live example

my example scripts :

var testtext1 = "apple banana and kiwi pineapple juice";
var testtext2 = "need apple banana pineapple milkshake";
var testtext3 = "apple pineapple lower prices";
var testtext4 = "only apple banana kiwi pineapple lovers";
var testtext5 = "kiwi pineapple apple banana sales";

alert(testtext1.match(/apple banana kiwi|apple banana|apple|banana|kiwi/gi).length); //3 matches
alert(testtext2.match(/apple banana kiwi|apple banana|apple|banana|kiwi/gi).length); //2 m
alert(testtext3.match(/apple banana kiwi|apple banana|apple|banana|kiwi/gi).length); //2 m
alert(testtext4.match(/apple banana kiwi|apple banana|apple|banana|kiwi/gi).length); //2 m
alert(testtext5.match(/apple banana kiwi|apple banana|apple|banana|kiwi/gi).length); //3 matches

text1= only 3 matches why ? watch regex

apple banana kiwi OR apple banana OR apple OR banana OR kivi

apple banana kiwi NO match 0

apple banana YES match 1

appple YES match 2

banana YES match 3

kiwi YES match 4

okay why return 3 matches not 4 matches ?? and other examples ?

see matchs this pic ?

Upvotes: 1

Views: 207

Answers (1)

Braj
Braj

Reputation: 46841

Have a look at below demo

Live DEMO

surround it by word boundary otherwise pineapple will be matched by apple

\b(apple banana kiwi|apple banana|apple|banana|kiwi)\b

Matches

apple banana and kiwi pineapple juice        2
need apple banana pineapple milkshake        1
apple pineapple lower prices                 1
only apple banana kiwi pineapple lovers      1
kiwi pineapple apple banana sales            2

EDIT

If you change the order then the result will be something different

\b(apple|banana|apple banana kiwi|apple banana|kiwi)\b

Live DEMO

apple banana and kiwi pineapple juice        3

Upvotes: 1

Related Questions