47

[\b]どうやらバックスペース文字に一致します。文字列にバックスペース文字を含める方法がわかりません。誰かがこれがどのように使用されるかの具体例を教えてもらえますか? 本当にありがとう。

4

3 に答える 3

47

他のすべては一般的に正しいですが (つまり\b、単語の境界)、文字クラス内のバックスペースを意味\b します。

[\b]

これは確かにバックスペース文字と一致します。これは、テキストに表示できる単なる ASCII 制御文字です (ASCII コード 8、または 8 進数の 10)。ダイアクリティカルマークを追加するために、従来の理由で主に使用されていると思います(たとえばa、 、バックスペース、、を実行´して を取得できますá)。現在、これらはほとんどが Unicode 結合マークに置き換えられています。

バックスペースを含む文字列が最終的にどのように表示されるかは、それをレンダリングするソフトウェアによって異なります。バックスペースの後に新しい他の文字が続く場合、コンソールはおそらくカーソルを戻し、そこにあったものを上書きします。これを確認するには、インタラクティブなスクリプト コンソール (JavaScript で試してみたい場合は node.js など) を起動し、実行します。

> console.log("abc\b\bdef")
adef

バックスペース自体は何も消去しないため、を省略defした場合は だけになることに注意してください。abcカーソルを戻すだけです。

一方、ブラウザーは入力フィールドでそれを無視する場合があります。たとえば、Unicode コンバーターabc\b\bdefを調べて、左下の入力にJavaScript 入力を入力し、「変換」を押すと、「文字」出力はbc消去されません。

ところで、\b文字クラスのバックスペースであることは JavaScript に固有のものではありませんが、ほとんどの正規表現フレーバーでこのように解釈されます。

参考文献:

于 2013-07-03T01:01:43.620 に答える
12

正規表現のコンテキスト内 (文字クラス外)\bでは、バックスペースは意味しません。それは「単語の境界」を意味します。それには多くの用途があります。例えば、

/\bword\b/

一致しますが、一致some wordしませんsomeword

m.butter指摘しているように、文字クラス内に配置すると、バックスペース文字と一致させるために使用できます。例えば:

var input = "this is a \btest.";
/[\b]/.test(input); // true
于 2013-07-03T00:56:58.347 に答える