2017-03-16 7 views
1

Im正規表現にはかなり新しく、任意の文字列から先頭のアンダースコア '_'を削除しようとしています。先頭の文字を削除する正しい方法

replace(/^[_]+/, "") 

これはうまくいきますが、これは正しい方法ですか?

ウェブ上でこのような特別な問題について多くのことを見つけることができないので、私はここでそれについて質問しています。

+2

文字クラス 'replace(/^_ + /、" ")' –

+2

は不要です。 '_'を1つだけ削除したい場合は、' + ' – Titus

答えて

3

これは十分なはずです。しかし動作することを

replace(/^_/, '');

1

、それは先頭のアンダースコアの1-nの番号を削除します。たとえば、_xはxになりますが__xはxにもなります。 n個の先頭のアンダースコアに至るまであなただけの最初の先導を削除したい場合は、以下を使用アンダースコア:

some_string.replace(/^_{1}/, ''); 

これは、この数量詞は貪欲ではないことだけは1.ノートに一致するように数量詞を使用して、+数量詞は、一つ以上かつ貪欲です。元のコードを非貪欲修飾子で使用することもできますか?

some_string.replace(/^[_]+?/, ''); 

ここでは、文字クラス演算子[...]を使用する必要はありません。それは間違った形や悪い形ではなく、ただ不必要です。

+0

を削除してください。 – mBeierl

関連する問題