2016-07-01 16 views
1

私は、世界中の選手がスコアを入力するオンラインリーダーボードを持っています。私のアプリでは、プレイヤーの名前を英数字の英数字と外国語の文字に制限したいが、特別な記号は許可しない。textbox/editboxに英語と外国語の文字と数字を受け付けるが、記号は受け入れないようにする方法は?

このデータは、オンラインのmysqlデータベースに保存されます。

私も日本語、中国語、スペイン語や他の言語の文字を受け入れることを許可について、次の

string correctedName = Regex.Replace(settings.PlayerNameSetting, @"[^A-Za-z0-9 ]+", ""); 

が、どのように使用して英語のアルファベットを確認することができます知っていますか? .NETで

答えて

0

^[\p{L}\d_][\p{L}\d_.\s-]*$ 

は、さらに他のUnicode文字を許可する、あなたの正規表現と等価です。

説明:

\p{L}は、Unicodeプロパティ "手紙" の省略形です。

警告:最初の文字としてアンダースコアを使用しないようにしたいと思います(2番目の文字クラスにのみ存在することが証明されています)。 \wにはアンダースコアが含まれているので、あなたの正規表現はそれを許可しました。私のソリューションの最初の文字クラスから削除することもできます(もちろん、\p{L}には含まれていません)。

ECMAScriptでは、それほど簡単ではありません。独自のUnicode文字範囲を定義する必要があります。幸い、仲間StackOverflowのユーザーが既に機会に上昇し、JavaScriptの正規表現コンバータ設計されています:

https://stackoverflow.com/a/8933546/20670

+0

感謝しますが、これは重複してhttp://stackoverflow.com/a/13069420/1740600 – PutraKg

関連する問題