持つ除いて、すべてのスペースにマッチする:正規表現は、単一のスペースは、私がこれまでに来ている両側の言葉
1)すべてのスペースにマッチする正規表現/ /g
を実行します。
2)regex /\b()\b/g
を新規に呼び出して、除外する必要があるスペースに合わせます。
ここでは、それらを両方とも1つのステートメントで融合する必要があります。 2番目に返されたもの以外のすべてのスペース。どんな助け?テストのための
ライブ正規表現:https://regex101.com/r/26w2WR/1
EDIT:良い答えが既に利用可能であるが、私は、印刷可能な多くのように、\b
または\B
と「言葉」と一致しようとしていることは常に良い考えではないことがわかりましたRegExではドットや引用符などの文字は単語として認識されません。別の問題は、DOMノードをループしているときに、<strong>
などのインラインスタイリングタグにも遭遇することがありますが、単語の始まり/終わりとしてカウントされますが、#textノードはタグの直前で終了します。したがって、RegExに文字列の末尾に "&"を含めることもできます。あまりにもこれらに対処したい人のために、私はこの正規表現になってしまった:
/(\S|^)()(?=\S|$)/g
これは\S
(ないホワイトスペース)を使用して、文字列の開始/終了をinlcudesと交換能力のためにグループを適用します。置き換えJSは、次のようになります。
文字を一致させるには
yourTextNode.replace(/(\S|^)()(?=\S|$)/g, '$1'+ yourreplacement)
、あなたは、この情報がお役に立てば幸い代わり()
の(\u00A0)
を使用することができます。
で前または後された空間にマッチする[ '(?!\ B \ b)は()'](https://regex101.com/r/26w2WR/2)? – trincot
はい!それでおしまい。ありがとうございました。 –