[英]Split a string with regex based on number of characters and spaces
我需要根據一些字符將一個字符串拆分成一個數組,而不是刪掉一個單詞。
我一直在用這個:
var charPerLine = 17;
var regex = new RegExp('^(.{'+charPerLine+'}\\S*\\s+', 'g');
var output = str.replace(regex, "$&@").split(/\s+@/);
這段代碼的問題是,有時我得到的字符串超過17個字符,如果空格接近最新字符。
例如,
var str = "I want you to do something else instead.";
分裂成:
var output = ["I want you to do something", "else instead."]
但是第一個字符串超過17個字符,我需要將它拆分為:
var output = ["I want you to do", "something else", "instead."]
它還必須使用標點符號和單/雙引號
有什么建議嗎?
你可以在第一個正則表達式中添加一個單詞邊界斷言\\b
,這樣如果它當前位於一個新單詞的開頭,它就不會以\\S*
前進:
var str = "I want you to do something else instead"; var charPerLine = 15; var regex = new RegExp('.{'+charPerLine+'}(?:\\\\b|\\\\S*\\\\s+)', 'g'); var output = str.replace(regex, "$&@").split(/\\s*@\\s*/); console.log(output);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.