みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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判定になります。
なぜこのようになるのか教えて下さい。

投稿日時 - 2019-02-22 02:25:43

QNo.9590303

すぐに回答ほしいです

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

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

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

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

投稿日時 - 2019-02-22 03:53:50

お礼

ありがとうございます。できました。
\は他の正規表現の区切りのように考えていました。

投稿日時 - 2019-02-24 21:40:46

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問