0

私はレベル 3 の Regex Sorcerer (隠されたトラップを見つけ、ペットのフクロウやコウモリを飼うことができる場所) になるのに近づいていますが、そこに到達するにはまだ助けが必要です...

以下は、最初の 2 つのケースでは機能しますが、3 番目のケースでは失敗します。数字を貪欲にしようとしましたが、すべてが失敗し、どこが間違っているのかわかりません。助けていただけますか?

alert(removeNumberAndExtension("file 01.txt")) // works
alert(removeNumberAndExtension("file_01.txt")) // works
alert(removeNumberAndExtension("file.txt"))    // fails

function removeNumberAndExtension(fname)
{
  var rexp = new RegExp(/\s*\d+\.[a-zA-Z]+/g)
  return fname.replace(rexp, "")
}
4

1 に答える 1

3

それは、1つ以上の数字」\d+が原因です。

ゼロ以上の数字」が必要\d*です。

ファイルの拡張子には数字を使用することもできます (例: ".mp3" ) [a-zA-Z0-9]

「文字列の終わり」アンカー ( )を追加する必要があります$。これにより、グローバル フラグ( g) が役に立たなくなります。

これらすべて一緒に: /\s*\d*\.[a-zA-Z0-9]+$/:)

于 2013-07-17T09:48:49.103 に答える