let t = document.getElementById('www1');
// достаем потенциальные текстовые узлы
textNodes = t.innerHTML.match(/(>[^<>]*?)([а-яА-Яё]+)([^<>]*?<)/igm) || [];
// проходим по каждому регуляркой в цикле
textNodes.forEach(function(tNode){
let repl = tNode.replace(/([а-яё]+)/igm, '<mark>$1</mark>');
t.innerHTML = t.innerHTML.replace(tNode, repl);
});
/^\S+$/
помогите пожалуйста дописать
/^[a-zA-Z0-9]+$/
?console.log(str.match(/(?<=:).*$/mg).map(match => match.trim()))
str.match()
Что-то скобочные группы не работают в глобальном поиске
и не подскажите где про это почитать в доках?
Метод match() возвращает получившиеся совпадения при сопоставлении строки с регулярным выражением.
/стрекоза
^\/[\p{L}0-9\\s]+$
с
т
preg_match("/^\/[\стрекоза{L}0-9\\s]+$/", "/стрекоза");
preg_match("/^\/[\w{L}0-9\\s]+$/iu", "/стрекоза");
u - unicode
[+7]
[0-9]{10}
- десять цифр\+?7([0-9]{10})$
$
/^[А-Яа-яA-Za-z]{2, 25}$/
А-Яа-яA-Za-z
, а достаточно было а-яa-z
preg_match('/^[a-zа-яё]{2,25}$/iu', $string);
sdfsd sdfsdf
будет true по причине удовлетворенности регулярному выражению. от 2-х до 25 символов от начала строки. sdfsd
от начала сроки имеет длину 5, что подходит под диапазон 2-25 _-«
_ до «
_
, то увидим, что он имеет U+005F
порядковый номер = 95U+00AB
= 171$str = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer sollicitudin augue rutrum metus molestie laoreet. Praesent vulputate at erat quis tincidunt. Vivamus pretium diam sed euismod tempor.
[marker]
Quisque pretium efficitur purus, interdum pulvinar nunc viverra ac. Vestibulum sit amet lobortis ligula. Nulla a nunc eu risus faucibus auctor non at leo. Mauris fermentum, turpis eu feugiat semper, nulla turpis venenatis dui, at condimentum sapien ligula eget ante. Donec vulputate tristique rhoncus. Sed et volutpat elit, ut sollicitudin nibh.';
echo 'Full text:' . PHP_EOL . $str . PHP_EOL . PHP_EOL;
$beforeMarker = '';
if (preg_match('/^(.*?)\[marker\]/isu', $str, $match)) {
$beforeMarker = $match[1];
}
$withoutMarker = str_replace('[marker]', '', $str);
echo 'Before marker: ' . PHP_EOL . $beforeMarker . PHP_EOL;
echo 'Without marker: ' . PHP_EOL . $withoutMarker . PHP_EOL;
кириллицы и латиницы
все английские буквы
#(<img.+>\s*)(?!</a>)#Uu
В этой регулярке нужно выбрать тег img после которого не следует тег</a>
. Она находи все теги img, то есть работает неправильно.
\s*
а оно у вас с квантором *
- ноль или много, и получается, что в данном случае срабатывает "ноль" повторений "предыдущего" (\s
) и поэтому как бы не срабатывает смотрящее впередimg
теги после которых нет </a>
, то следует писать как-то так<img[^<>]*?>(?!<\/a>)
(<img[^<>]*?>)(?!\s*<\/a>)