アプリ版:「スタンプのみでお礼する」機能のリリースについて

初心者で
簡単なことを質問してしまいまして
申し訳ございません。

全角カナ英数字+「ー」+「‐」のみ入力できるようにし、
それ以外が入力された場合は
alertを出すようにしたいのですが、
チェックする方法としては
下記のとおりになりますでしょうか。
良い方法があれば教えてください。

(1)入力可能文字を宣言
 アイウエオカキクケコ~ワヲン
 +
 1234567890
 +
 ABCDEFG~XYZ
 +
 abcdefg~xyz
 +
 ー
 +
 ‐
(2)入力された値を取得し
 charAt(i)で一文字ずつ比較


すべての全角文字ではなく
上記文字のみ入力可能としたいのです。
入力可能な文字を
長々と定義するのもと思いまして
お伺いしております。

どうぞ宜しくお願い申し上げます。

A 回答 (3件)

ん?


JavaScriptではなく、JSPですか?

混同しているようなら明確な区別が必要です。
http://www.atmarkit.co.jp/fjava/rensai/jsp01/jsp …
    • good
    • 0

#1です。


全角カナについてはもう少し厳密には[ァ-ヶ]となります。

http://webtips.open-log.net/?PHP%2FPHP%E5%85%A5% …

小さい字とか撥音等は含まない、と言う事でしたらそのまま書くべきです。
[アイウエオカキクケコ.......ン]

補足でした。

この回答への補足

遅くなりましてすみません。
ご回答ありがとうございます。

ご教示いただいた処理を埋め込んでみたのですが
JSPのバージョンが古いため
matchで
オブジェクトでサポートされていないプロパティまたは
メソッドです。
と出てしまいます。
matchが使用できない場合は
やはり
charAtで回すしかないのでしょうか。

最初にバージョンなどをお伝えできておらず
申し訳ございませんでした。

また、同様の処理をJavaにも埋め込みたいのですが
具体的にどう対応すれば
よいのかわかっておりません。

Javaもバージョンが古く
ループだらけになりそうです。

きれいな方法があれば
お手数かと思いますが
宜しくお願いいたします。

補足日時:2007/10/23 14:01
    • good
    • 0

charAtを使うのではなく、正規表現を使った方が簡単です。


指定文字の文字クラスが使えます。文字クラスは[]で囲み、それ以外と言う場合は頭に^をつけます。
すなわち、正規表現的には
/[^ア-ン0-9A-zー\-]/
となります。match()で正規表現で検索出来るので、該当した場合はtrueとなるので、こんな関数が書けます。

function checkWord(str){
var a = str.match(/[^ア-ン0-9A-zー\-]/);
if(a){
alert( str+"は文字が不正です" );
}
}
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!