2011-05-31 77 views
0

我想將此字符串剪切爲50個字符,其中(空格之後)它開始計數至50(不包括空格),並且如果該部分超過50,則會插入空格。到目前爲止,我可以削減它,但我不知道如何指定「排除空格」。試過[^\s]但沒有喜悅。當連續單詞長度爲50個字符時插入空格

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 '); 

回答

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 "); 
+0

這是我正在尋找的解決方案,我感謝** Tyilo **。然而,** Spudley **以我最終想達到的目標讓我走上正軌。 – skymook 2011-05-31 15:54:01

1

您使用以下正則表達式:

(\S{50}) 

\ S - 匹配,是不是一個空白字符的任意字符(空格,製表符,換行符) 。

2

如果你這樣做的目的是爲了防止長字符串從breeaking了其在瀏覽器窗口區域,你可能想嘗試的CSS的解決方案:

CSS有word-wrap屬性,您可以使用告訴瀏覽器即使沒有自然的突破點也能打破長長的單詞。

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

現在,如果你有HTML如下:

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

...它會自動換行需要它的域名範圍內。

這是支持所有主流瀏覽器 - 見http://caniuse.com/#search=wordwrap

希望有所幫助。

+0

哦,閣下,爲什麼你長久以來從我這裏隱藏了這個?感謝一羣** Spudley **,這是我最終使用的。很方便地瞭解正則表達式的解決方案,這是我的問題的答案,所以我爲此記入了** Tylio **。 – skymook 2011-05-31 15:57:43

+0

無論何人建議編輯「The word-wrap僅適用於Internet Explorer,支持:CSS3,IE5.5」,如果您的編輯與答案矛盾,請添加評論。 – Rotem 2013-01-02 16:55:07

相關問題