使用rtrim进行Javascript字符串计数

时间:2014-11-28 08:42:27

标签: javascript regex

所以我有像这样的字符串(例如):

var str = '1234567  ' +
            '89';
7 后的两个空字符(可以更多) 我有一个正则表达式

var text = str.replace(/(\r\n)|\r|\n|( )|( )|(\u00A0)/g, ' ')
                .replace(/<p>( |(<br>))<\/p>/gi, "\n")//weird TinyMCE newline variants
                .replace(/(\s*<\/p>)|(\s*<br[^<>]*>)|(\s*\n)/gi, "\n")
                .replace(/<.[^<>]*>/g, '')//strip tags
                .replace(/&[a-z]+;/g, 'a')//html_entity_decode
                .replace(/^\s+|\s+$/g, '');//whitespace right trim




console.log(text.length) // 

结果是 11 ,但它应该 9

如何在换行符(每个新行)之前修剪正确的空格和空格。 文字可以是:

    var text = 'new     ' +
               'text         ' +
               'example ';
text.length should be 14

Jsfiddle example

1 个答案:

答案 0 :(得分:0)

您可以使用String.replace删除每个空格。对于单个字符串,您可以使用String.trim

使用数组来保存字符串然后你可以这样做

var arr = ['new     ', 'text         ', 'example ']; // array of strings
var text = arr.map(function(str){ // map to create a new array
    return str.replace(/(\w+)\s+/, "$1");  // right trim
}).join(""); // join the array with empty string
console.log(text.length); // 14