регулярка, сцуко >.<
нужна регулярка, которая ставит пробел после каждого символа, но если встречается символ < или &, то до символа > или ; (соответственно) всё пропускается и ставится пробел только после > или ;
Всё, до чего я додумался, но всё равно не так как нужно:
<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, время: 06:31. |