単語を切り捨てずに、文字列を配列に分割する必要があります。文字とスペースの数に基づいて正規表現で文字列を分割する
私はこれを使用してきた:
var charPerLine = 17;
var regex = new RegExp('^(.{'+charPerLine+'}\\S*\\s+', 'g');
var output = str.replace(regex, "$&@").split(/\[email protected]/);
このコードの問題は、時々私はスペースが最新キャラクターに近かった場合には、17文字より長い文字列を取得ということです。
例えば、
var str = "I want you to do something else instead.";
はに分割取得します:
var output = ["I want you to do", "something else", "instead."]
:
var output = ["I want you to do something", "else instead."]
しかし、最初の文字列を超える17の文字ですが、私はそれのような分割する必要があります
また、句読点と一重/二重引用符を使用する必要があります
提案がありますか?
それは新しい単語の開始時に、現在であれば、それは\S*
を進めないようにあなたは、最初の正規表現に単語境界表明
\b
を追加することができます
質問:単一の単語が15以上の文字が含まれている場合はどうなりますか?それはどこかに分かれるか、それとも食べますか? –
それは決して起こるべきではないので、私はそれが中間で切り取られるべきではないと言っています – alexmngn