前导和尾随<br>移动
Leading and Trailing <br> removal
我有类似的字符串表达式
<br /><br /><br/ >this is <br /><br /><br/ > a test<br /><br /><br/ ><br>
其中我只需要使用纯javascript删除第一组和最后一组<br />
标记。
如果全局执行,这将匹配所有前导换行符和所有尾随换行符(以及前后的空白,如果您想保留前导/尾随空白,请告诉我):
^'s*(?:<br's*'/?'s*>)+|(?:<br's*'/?'s*>)+'s*$
像这样使用:
var regex = /^'s*(?:<br's*'/?'s*>)+|(?:<br's*'/?'s*>)+'s*$/gi,
string = ' <br /><br /><br/ >this is <br /><br /><br/ > a test<br /><br /><br/ ><br> ';
string = string.replace(regex, ''); //changed replacement
console.log(string);
<script src="https://getfirebug.com/firebug-lite-debug.js"></script>
与其尝试使用regexp处理HTML(即使这看起来无害),不如考虑使用CSS中和br
标记。
br { display: none; }
请参阅忽略<br>使用CSS?。
如果你想压缩多个br
标签,那么
br + br { display: none; }
在您的特定情况下,CSS无法检测br
是否出现在元素的开头或结尾。这里有一些JavaScript。一般来说,最好使用DOMAPI像这样操作DOM,而不是在DOM的字符串表示上使用regexp:
function removeLeadingTrailingBRs(elt) {
var node;
while (node=elt.querySelector('br:first-child')) { elt.deleteChild(node); }
while (node=elt.querySelector('br:last-child')) { elt.deleteChild(node); }
}
或者,如果你是一个坚持保理的人:
function deleteBySelector(elt, selector) {
var node;
while (node=elt.querySelector(selector)) { elt.deleteChild(node); }
}
function remoteLeadingTrailingBRs(elt) {
deleteBySelector('br:first-child');
deleteBySelector('br:last-child');
}
您可以使用以下正则表达式:
/^'s*<br's*'/?'s*>|<br's*'/?'s*>'s*$/ig
用空字符串替换:
' <br /><br /><br/ >this is <br /><br /><br/ > a test<br /><br /><br/ ><br> '.replace(/^'s*<br's*'/?'s*>|<br's*'/?'s*>'s*$/ig, '')
// => "<br /><br/ >this is <br /><br /><br/ > a test<br /><br /><br/ >"
更新
删除多次出现:
/^'s*(<br's*'/?'s*>)+|(<br's*'/?'s*>)+'s*$/ig
' <br /><br /><br/ >this is <br /><br /><br/ > a test<br /><br /><br/ ><br> '.replace(/^'s*(<br's*'/?'s*>)+|(<br's*'/?'s*>)+'s*$/ig, '')
// => "this is <br /><br /><br/ > a test"
我终于找到了解决方案。以下是为我工作的RegEx。
/^[<br>]*'s*[<br>]*|[<br>]*$/g
谢谢你的帮助!
相关文章:
- 如何停止CKEditor用<br>
- 高亮显示包含<br>以及重新格式化网格
- jQuery:如何添加<br/>在不同的字符串中换行以分隔2中的句子
- 如何添加html<br>标记转换为javascript
- CKEDITOR-<p>而不是<br/>导致复制粘贴问题
- 将换行符替换为<br/>并将其保存到数据库中
- 替换' '其中<br>在JavaScript中
- 发现<br>使用window.getSelection在wysiwyg编辑器中定位
- 删除第一个和最后一个<br/>来自字符串
- jQuery:添加和删除<br>标签,这取决于窗口宽度以及标签是否已经存在
- HTML代码不工作<br>线
- Selenium IDE javascript正则表达式用<br>
- jquery:找到换行符并将其替换为<br>
- 为什么“<br>"显示而不是引起中断
- 删除所有<br>就在关闭</p>
- 如何删除<br>从prettyPhoto悬停
- 读取<br>来自HTML,并在javascript中设置为
- 根据<br/>使用jquery标记
- CKEditor插入<br/>按回车键两次
- 正在转换<br>标记到<Div>或者<P>标签