当连续单词长度为50个字符时插入空格

时间:2011-05-31 15:10:52

标签: javascript regex whitespace

我想将这个字符串剪切成50个字符,其中(在一个空格之后)它开始计数到50(不包括空格),如果该部分超过50,则插入一个空格。到目前为止,我可以将其删除,但我不知道如何指定“排除空格”。试过[^\s],但没有快乐。

var str = " http://this.domain.com/fff/222/widget.css http://www.domain.com/myfolder/uploads/1/3/3/7/2332053/custom_themes/8787687678644/more_custom_themes/files/my-main_style.css?8763487634 http://cdn.domain.com/folder/images/thisfolder/common.css?9444"
str.replace(/\s(\w.{50})/g,' $1 ');

3 个答案:

答案 0 :(得分:2)

试试这个:

var str = " http://this.domain.com/fff/222/widget.css http://www.domain.com/myfolder/uploads/1/3/3/7/2332053/custom_themes/8787687678644/more_custom_themes/files/my-main_style.css?8763487634 http://cdn.domain.com/folder/images/thisfolder/common.css?9444"
str = str.replace(/([^ ]{50})/g, "$1 ");

答案 1 :(得分:2)

如果您这样做的原因是为了防止长字符串在浏览器窗口中从其区域中消失,您可能需要尝试CSS解决方案:

CSS具有word-wrap属性,您可以使用该属性告诉浏览器即使它们没有自然断点也可以打破长词。

#divwithlongword {
    word-wrap: break-word;
}

现在,如果你有以下HTML:

<div id='divwithlongword'>myextraordinarilyandexcessivelylongdomainnamegoeshere.com</div>

...它会在域名中包含所需的内容。

所有主流浏览器均支持此功能 - 请参阅http://caniuse.com/#search=wordwrap

希望有所帮助。

答案 2 :(得分:1)

您使用以下正则表达式:

(\S{50})

\ S - 匹配任何不是空白字符的字符(空格,制表符,换行符)。