人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【JS正規表現】JavaScriptの正規表現で、ファイル名が正しいかどうかを判断したいです。
(ファイル名として適当でない記号が入っていたらfalseを得たいです)

ターゲットブラウザはIE5以上でお願いします。
よろしくお願いいたします。

●質問者: llusall
●カテゴリ:インターネット ウェブ制作
✍キーワード:JavaScript js ターゲット ファイル ブラウザ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● k-watching
●0ポイント

正規表現じゃないですけど

function check(c){

var result = true;

for(i = 0;i<c.length; i++){</p>

switch(c.substring(i, i + 1)){

case ":":

case ";":

result = false;

}

}

return result;

}

これでチェックはできると思います。

(弾きたい文字をcase文に追加していく)

◎質問者からの返答

ごめんなさい。不可です。

質問にあるとおり、正規表現で実現させたいのです。

もっとピンポイントで言うと、パターンの指定がわからないのでぃす。

このパターンだけでも教えてくれる人がいるとうれしいです。


2 ●
●70ポイント ベストアンサー

以下のような感じでどうでしょうか。

str.match( /^.*[(\\|/|:|\*|?|\"|<|>|\|)].*$/ )

Windowsでファイル名に使えない\,/,:,*,?,",<,>,|がstrに含まれるとmatchがtrueを返します。

以下に簡単なサンプルも載せておきます。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>ファイル名チェックサンプル</title>
<script type="text/javascript">
function FileNameCheck() {
var str = document.getElementById("str1").value;
//alert(str);
if( str.match( /^.*[(\\|/|:|\*|?|\"|<|>|\|)].*$/ ) ) {
alert("正しいファイル名を指定してください。");
return 1;
} else if (str=="") {
alert("ファイル名を入力してください。");
return 1;
}
alert("ファイル名チェックO.K.です。");
return 0;
}
</script>
</head>
<body>
<form onSubmit="FileNameCheck()">
<input id="str1">
</form>
</body>
</html>

参考になれば幸いです。


3 ● k-watching
●10ポイント

ではこれでは?

function check(c){

var result = c.match(/[^0-9A-Za-z.]+/) == null;

return result;

}

(実質2行目だけですけど)

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ