Регулярное выражение: у русских слов нет границы “\b”?

331
15 января 2018, 10:15

Поясните, пожалуйста, почему не работает граница слова \b для русских слов, в то время, когда для английских работает.

var str = "one один two два three" 
 
var work = str.match(/([\w])+\b|([а-я])+/gi); 
console.log(work, ":Без \\b для русских слов:"); 
 
                                      //вот тут 
var notWork = str.match(/([\w])+\b|([а-я])+\b/gi); 
console.log( notWork, ":c \\b для русских слов:");

Answer 1

Вам помогут сервисы https://regexper.com/ и https://regexr.com в подобных случаях. Первый очень понятно на схемах показывает как интерпретируется регулярное выражение. Второй подробно расписывает выражение. В данном случае не работает потому что:

\w - Символы a-z, A-Z, 0-9, включая символ подчеркивания. Используется для поиска символа слова.

[а-я]- Любой из символов в нижнем регистре от а до я. Ищет символ.

READ ALSO
Цифровые часы как сделать

Цифровые часы как сделать

не нашел примеров в интернетеКак сделать такие вот часы?

217
Почему некорректно работает скрипт?

Почему некорректно работает скрипт?

Добрый день! Для фиксации блоков использую скрипт:

255
Переместить элементы на странице

Переместить элементы на странице

Есть пример разметки, но вложенность примерно такая:

174