以下の 2 つの正規表現を組み合わせる方法があるかどうか、または別の方法で 2 つのタスクを組み合わせる方法があるかどうかを知りたいです。
1) /(<\/[a-z]>|<[a-z]*>)/g
2) /\s{2,}/g
具体的には、これを置き換えるために使用されます。
This is <b>a test</b> and this <i> is also a test</i>
これに:
This is <b> a test </b> and this <i> is also a test </i>
最初の正規表現は、すべての開始タグと終了タグの前後にスペースを追加するために使用され、2 番目の正規表現は、削除される 2 つ以上のスペース文字のすべての発生に一致するために使用されます。
ここにコードがあります
var inputString = 'This is <b>a test</b> and this <i> is also a test</i>',
spacedTags = inputString.replace(/(<\/[a-z]>|<[a-z]*>)/g, ' $1 '),
sanitizedSting = spacedTags.replace(/\s{2,}/g, ' ')
console.log(sanitizedSting);
とjsfiddle。
おそらくさらに高速になるDOM操作を使用してそれらを実行できることはわかっていますが、これを回避しようとしています。
ありがとうございました