解決済み

半角英数字の正規表現でドット(.)がはじかれない

  • すぐに回答を!
  • 質問No.9590303
  • 閲覧数83
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 44% (28/63)

Javascriptのmatchでファイル名の使用可能文字のチェックを行っています。
使用可能文字は漢字、全角ひらがな、カタカナ、半角英数字、ハイフン(-)、
アンダーバー(_)で以下のように書いています。
if ( filename.match(/[^\u30a0-\u30ff\u3040-\u309f\u30e0-\u9fcf\0-9a-zA-Z\-\_]/) ){
alart(NG) // 使用可能文字以外が含まれている
} else{
alart(OK) // 使用可能文字だけ
}
ファイル名が「ひらがな-カタ_漢字1a」はOK、「ひらが.な-カタ_漢字1a」はNG
としたいのですが両方OKになってしまいます。
どうやら半角英数字の「0-9a-zA-Z」を条件に入れることでドット(.)も使用可能文字
とされてしまうみたいです。
「0-9a-zA-Z」を外すと「ひらが.な-カタ_漢字1a」はNG判定になります。
なぜこのようになるのか教えて下さい。

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

  • 回答No.1

ベストアンサー率 66% (378/569)

.match(/[^(略)\0-9(略)] )

の0の前にあるバックスラッシュ(\)が いらないような。。

(半角数字なら 0-9 ですが、 \0-9だと記号も含んでしまうのでは?)
お礼コメント
kinka2000

お礼率 44% (28/63)

ありがとうございます。できました。
\は他の正規表現の区切りのように考えていました。
投稿日時 - 2019-02-24 21:40:46
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集

ピックアップ

ページ先頭へ