替换JavaScript中的制表符
请考虑以下HTML
元素:This is some example code which contains tabs
我想用HTML中的四个不间断空格字符替换所有制表符(即 )。 我用JavaScript测试了上面的pre元素是否存在制表符,如下所示:
$('pre').ready(function() { alert(/\t/.test($(this).text())); });
但它总是返回假。 任何人都可以告诉我将源代码中的制表符空格替换为HTML NBSP的正确过程吗? 这些选项卡已由Komodo Edit添加,在查看源时可见。
你可以这样做:
$('pre').html(function() { return this.innerHTML.replace(/\t/g, ' '); });
这将遍历页面上的所有
pre
元素并为每个元素调用函数。 jQuery的html
函数使用我们给出的函数的返回值来替换每个元素的内容。 我们使用String#replace
来替换HTML字符串中的所有(注意regexp上的g
标志)制表符,其中包含四个不间断的空格。实例
它删除了换行符,额外的空格和换行符:
function removeNewlines(str) { //remove line breaks from str str = str.replace(/\s{2,}/g, ' '); str = str.replace(/\t/g, ' '); str = str.toString().trim().replace(/(\r\n|\n|\r)/g,""); console.log(str); }
演示:
function removeNewlines(str) { //remove line breaks from str str = str.replace(/\s{2,}/g, ' '); str = str.replace(/\t/g, ' '); str = str.toString().trim().replace(/(\r\n|\n|\r)/g,""); console.log(str); } $('#acceptString').click(function() { var str = prompt('enter string',''); if(str) removeNewlines(str) });
试试这个:
var tab = RegExp("\\t", "g"); document.getElementById("text").value = document.getElementById("text").value.replace(tab,' ');