- В которых обязательно присутствует выделенное слово.
+
— пример:+слово
Matcher.add(['+слово']) => слово, пословица, словосочетание
- В которых отсутствует заданное слово.
-
— пример:-слово
Matcher.add(['-слово']) => все что угодно кроме...
- Начало слова.
^
— пример:^слово
Matcher.add(['^слово']) => слово, словосочетание
- Окончание слова.
$
— пример:слово$
Matcher.add(['слово$']) => слово, полуслово
Конечно можно комбинировать и никто не запрещает добавить валидную регулярку.
Matcher.add(['+^слово$', '+..ово$', '-^в$', '-^на$', '-^что$'])
Количество позитивных совпадений в строке влияет на релевантность функции.
После вызова Matcher.match
методу call
доступны самые релевантные функции привязанные с помощью add
. Если самых релевантных функций несколько они будут отсортированы по приоритету.
Метод call
может получить ограниченное количество функций например:
Matcher.call( undefined, 1 ) // прожечь только первый колбек
// add functions
pets.add(['пушистых', '+белых', 'котиков', '-собак'],
() => console.log('Я люблю пушистых белых котиков, а ты?')
);
pets.add(['пушистых', '+черных', 'котиков', '-собак'],
() => console.log('Я люблю черных пушистых котиков, а ты?')
);
pets.add(['+пушистых', '-пародистых', '-черных', '-белых', '-котиков', '-собак'],
() => console.log('Я люблю пушистых домашних питомцев, а ты?')
);
pets.add(['пушистых', '-котиков', 'собак', '+не люблю'],
() => console.log('Я не люблю собак, а ты?')
);
// match
console.log('------------------------');
pets.match('Я люблю пушистых черных котиков, а ты?').call();
console.log('------------------------');
pets.match('Я не люблю собак, а ты?').call();
console.log('------------------------');
pets.match('Я люблю всех пушистых, а ты?').call();
console.log('------------------------');