问题描述
|
我想将此字符串切成50个字符,其中(在一个空格之后)它开始计数到50个字符(不包括空格),如果该部分超过50个,它将插入一个空格。到目前为止,我可以进行裁剪,但是我不知道如何指定“排除空格”。尝试了“ 0”,但没有喜悦。
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 \');
解决方法
尝试这个:
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 \");
, 如果您这样做的原因是为了防止长字符串从浏览器窗口的区域中冒出,请尝试使用CSS解决方案:
CSS具有word-wrap
属性,即使没有自然的断点,您也可以使用该属性告诉浏览器将长单词分解。
#divwithlongword {
word-wrap: break-word;
}
现在,如果您具有以下HTML:
<div id=\'divwithlongword\'>myextraordinarilyandexcessivelylongdomainnamegoeshere.com</div>
...它将在域名中需要的地方自动换行。
所有主流浏览器均支持此功能-请参阅http://caniuse.com/#search=wordwrap
希望能有所帮助。
, 您使用以下正则表达式:
(\\S{50})
\\ S-匹配不是空格字符的任何字符(空格,制表符,换行符)。