3

2 単語ごとにキャリッジ リターンを挿入する正規表現を作成したいと思います...また、書式設定する文字列が配列内にあります (違いはありますか?) 問題は次のとおりです。誰かが文字通り私の脳を踏んでいるような気がします。ということで、とりあえず思いつきました(ご容赦ください…)

ticketName[i] = 'Lorem ipsum dolor sit amet consectetur adipisicing';
ticketName[i] = ticketName[i].replace(/(?:[a-zA-Z])* {2}/ig, ',');

意外に...うまくいかない!

誰でも私を助けることができますか?

また、これが終わったら、文が一定の文字数を超えると、文末を「...」に置き換えて別のものを作成する必要があります。おそらくそれについても戻ってくるので、それについて何か洞察があれば... サイトを検索したところ、文の終わりをキャリッジリターンに置き換えているだけでした。そして、私の pb は単語の定義にあると推測しています。本当にありがとう

4

5 に答える 5

1

私はこれがうまくいくと思います:

str.replace(/((\s*\w+\s+){2})/g, "$1\n");

例えば:

var str = 'Lorem ipsum dolor sit amet consectetur adipisicing';
str.replace(/((\s*\w+\s+){2})/ig, "$1\n");
"Lorem ipsum 
dolor sit 
amet consectetur 
adipisicing"

正規表現の説明:

(         -> start of capture group. We want to capture the two words that we match on
(         -> start of an inner capture group. This is just so that we can consider a "word" as one unit.
\s*\w+\s+ -> I'm consider a "word" as something that starts with zero or more spaces, contains one or more "word" characters and ends with one or more spaces.
)         -> end of capture group that defines a "word" unit.
{2}       -> we want two words
)         -> end of capture group for entire match.

置換では、$1\n「最初のキャプチャ グループを使用して改行を追加する」という単純なものがあります。

フィドル

于 2013-04-05T16:04:33.610 に答える