• ベストアンサー

ファイル名に使用できない文字をJavaScriptでチェックしたい!

こんにちは。 題名の通りです。 ファイル名に使用できない文字 \ / : * ? " < > | を蹴るためのJavaScriptを作成したいと思っているのですが、 どうも見つかりません。 わかる方いらっしゃったら ご教授願います。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

#1で >var pat = /[\\\/:\*\?\"\<\>\|]/gi; の部分は、パターンマッチさせる指定です。 match()の中に直接書いても良いのですが、 //は、この中がパターンの記述であることを表しています。 giは、g:全部みる、i:大文字小文字を無視する(この場合あんまり意味無いですね^^;) というような意味です。 []は、この中に書いた1文字とマッチするというような意味ですが、 特殊な文字には特殊な意味があるので、 本来であれば、それぞれの文字を書き並べて [\/:*?"<>|] とすればいいのですが、それぞれの特殊な意味を無効にするというような意味で \\とか\|とかその前の¥を付けます。 >Scriptエラーが出てきてしまいます。 ウチで試したところではIE6,Firefoxではエラーにはならずにちゃんと動きます。 環境はなんでしょうか? 試されたスクリプトを補足で挙げてみて下さい。 WSHとして動かしているのであれば、 alertをWScript.Echoに変える必要があると思いますが。。 あと、 >var filename = "C:\testName.txt"; は、 var filename = "C:\\testName.txt"; の間違いですが、実際はこの部分は、多分入力された文字を使うのだからいいですね。

marimo-
質問者

お礼

回答ありがとうございます。 Scriptエラーのことですが、 >var pat = /[\\\/:\*\?\"\<\>\|]/gi;          ↑ ここに"\"を入れたらしっかり動きました。 説明がわかりやすかったです。 とても勉強になりました。 ありがとうございます^ー^v

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

var filename = "C:\testName.txt"; var pat = /[\\\/:\*\?\"\<\>\|]/gi; if(filename.match(pat)){ alert("ファイル名として不適切な文字が含まれています"); } というような感じだと思います。 :や¥は、必ずしも不適とは限らないとは思いますが・

marimo-
質問者

お礼

回答ありがとうございます。 早速試してみたのですが、 >var pat = /[\\\/:\*\?\"\<\>\|]/gi; の部分でScriptエラーが出てきてしまいます。 /[\\\/:\*\?\"\<\>\|]/giの意味がまだ理解できないので 教えていただけないでしょうか。 宜しくお願いします。

関連するQ&A