文字列からすべての数字を削除するために正規表現をいじっていました
私はこれを思いついた:
/([^0-9])$/
ただし、文字列が Name123 のように見える場合にのみ機能しますが、Name123Name と入力すると機能しませんか?
理由がわかりませんか?
何か案は?
よろしく、イリア
正規表現は、stringの末尾にない1文字を検出します。[0-9]
文字列のどこかに数字があるかどうかを確認するには、アンカーを削除します。
/[0-9]/
すべての文字が数字ではないことを確認するには、文字列アンカーの開始も追加します。
/^[^0-9]+$/
このアプローチはブラックリスト (許可したくない文字のリスト) と呼ばれます。代わりにホワイトリスト (許可したい文字のリスト) を作成する方がよい場合が多いことに注意してください。
$
文字列の末尾に一致するため、末尾の を削除します。また、使用している言語に依存する\d
代わりに、数字を一致させるために使用できます。[0-9]
123 は文字列の末尾に表示されるため、この例/[0-9]$/
では Name123 と一致し、$
アンカーと一致します。しかし、別の例 Name123Name では、$
数字が文字列の途中にあるため、アンカーは一致しません。