регулярка, сцуко >.<
нужна регулярка, которая ставит пробел после каждого символа, но если встречается символ < или &, то до символа > или ; (соответственно) всё пропускается и ставится пробел только после > или ;
Всё, до чего я додумался, но всё равно не так как нужно: <div id="div"></div> <script> function regular(text) { text = text.replace(/((?:\<\S\>)|(?:\&)[\s\S]+?(?:\<\/\S\>)|(?:\;))|[\s\S]/gim, function(a) { return a+' ' }) ; return document.getElementById('div').innerHTML = text ; } ; regular('<b><b>Aa</b>AbAA</b>') ; </script> |
function regular(text) { var Arr = text.split(/(<[^>]*>|&[^;]*;)/gim); var Wstawk = ' '; //' ' //Тут поменяешь - если нужен неразрывый пробел for(var i=0; i<Arr.length; i++){ if(Arr[i].search(/<[^>]*>|&[^;]*;/gim)!=-1){ Arr[i] = Arr[i] + Wstawk; } else { Arr[i] = Arr[i].replace(/(\S)/gim,'$1' + Wstawk); } } return Arr.join(''); } alert(regular('<b><b>Aa</b>AbAA</b>')); |
Deff, спасибо)))
|
var text = '<b><b>Aa</b>AbAA</b>'; alert( text.replace( /(?:&..;|<.+?>|\S)/g, '$& ' ) ); |
nerv_, +
Красиво ( плюсов нет, - кончились |
nerv_, спасибо))) супер, ток мне нужно так:
text.replace(/(?:&.+?;|<.+?>|[\S\s])/gmi, '$& ') т.к. там может быть и а также после пробела мне тоже нужно ставить пробел :) да, и скажите, пожалуйста, что значит '$& ' |
Цитата:
text.replace( /(?:&[\da-z]+?;|<[\S\s]+?>|.)/gim, '$& ' ); |
Цитата:
Цитата:
|
Hekumok,
$& => найденная подстрока => http://javascript.ru/basic/regular-e...-stroke-zameny |
Цитата:
|
Часовой пояс GMT +3, время: 04:54. |