• ベストアンサー

全角カタカナ バリデーションチェック

入力フォームで、全角カタカナ以外を入力し確定ボタンを押すとアラートを出すjavascriptが知りたい。(javascriptファイルは外部参照にしたいです)

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

  • ベストアンサー
noname#84373
noname#84373
回答No.4

function kana(arg){return arg.match(/^[ァ-ン]+$/) ? true:false;} あれだと カタカナが一部でも含まれていればtrueを返す

beishan
質問者

お礼

ありがとうございました、(/^[ァ-ン]+$/)私のどころが^と$を追加して、正常判別できるようになりました。(^-^)

その他の回答 (3)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

>astr.match(/[ァ-ン]+/) ってastrに1文字でもカタカナがはいっていればってことですよ astr.match(/^[ァ-ン]+$/)・・・頭からケツまですべてカタカナとするか !astr.match(/[^ァ-ン]/)・・・カタカナ以外の文字がはいっていない とするのが妥当かと。 ちなみに文字コードによって必ずしもカタカナは「ァ-ン」だとは 限らないですよ。

beishan
質問者

お礼

ありがとうございました、全部カタカナにして欲しかったです、astr.match(/^[ァ-ン]+$/)のように書きなおして解決しました。

noname#78238
noname#78238
回答No.2

正規表現を、下記のようにしてはいかがでしょうか。 /^[ァ-ン]+$/ 私の環境でも、質問者さんと同じようにするとカタカナ以外にもマッチしてしまいました。

beishan
質問者

お礼

ありがとうございました、回答者さんの言ったように書いたら、解決しました。

noname#84373
noname#84373
回答No.1
beishan
質問者

補足

回答ありがとうございました。 調べましたが、自分のところで実行したら思った通りに行かなかったため、ここに来たのです。 私はこのように書きましたが、どこか間違っているですよね? //JavaScriptファイルでは function isOnlyZenkakukana(arg){ astr = arg; if (astr.match(/[ァ-ン]+/)) { return true; } return false; } //jspファイルには if (isOnlyZenkakukana(wKana) == false) { //フリガナの全角カナチェック window.alert("<%= ShopWarningMessages.NOT_ZENKAKU_KANA %>"); wForm["<%= ShopDefinition.STAFF_KANA %>" + wi].select(); return false; } どこか間違っているのか?教えてお願いします。