2017-01-20 9 views
-1

私は正規表現関数を作成し、データを保存するときにそれを呼び出しました。テキストボックスに入力された最初の特殊文字をラベルに表示する方法

if (ClassName.CheckSpecialCharacter(txt_ExpName1.Text)==false) 
{ 
    lblErrMsg.Text = "Special characters not allowed"; 
    return; 
} 

は今の代わりに、「許可されていない特殊文字」を書いて、私は、@が入力された場合の第一特別なテキストボックスに入力された文字、そう を添付したい:ここで使用

public static bool CheckSpecialCharacter(string value) 
{ 
    System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@"[~`[email protected]#$%^*()=|\{}';.,<>]"); 
    if (regex.IsMatch(value)) 
    { 
     return false; 
    } 
    else 
    { 
     return true; 
    } 
} 

メッセージは「特殊文字@許可されていません」と読み替えてください。

これは可能ですか?助けてください。ありがとうございます。

答えて

1

次のコードを試してください。

public static string CheckSpecialCharacter(string value) 
{ 
    System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@"[~`[email protected]#$%^*()=|\{}';.,<>]"); 
    var match = regex.Match(value); 
    if (match.Success) 
    { 
     return match.Value; 
    } 
    else 
    { 
     return string.empty; 
    } 
} 

用法:

var value = ClassName.CheckSpecialCharacter(txt_ExpName1.Text); 
if (!string.IsNullOrEmpty(value)) 
{ 
    lblErrMsg.Text = value + " Special characters not allowed"; 
    return; 
} 

か、ブールを返すと、関数内で1 out parameterを追加することによってそれを行うことができますが、私はそれを示唆しています... check this link

EDIT - 行うにはJavascriptの同じもの

function CheckSpecialCharacter(value) 
{ 
    var res = value.match(/[~`[email protected]#$%^*()=|\{}';.,<>]/g); 
    return res == null ? "" : res[0]; 
} 

用法:

var value = CheckSpecialCharacter(document.getElementById("txt_ExpName1").value); 

if(value != "") 
{ 
    document.getElementById("lblErrMsg").innerHTML = value + " Special characters not allowed"; 
} 
+0

正規表現を2回使用する必要はありません。単に 'regex.Match'を使い、' match.Success'が* true *であるかどうかを確認してください。 –

+0

ありがとう@WiktorStribiżew –

+0

@KDこれは本当にありがとうございました! javascriptで同じことをする方法を教えていただけますか? – sumedha

0

はこれを試してみてください:

public static bool CheckSpecialCharacter(string value, out string character) 
{ 
    var regex = new System.Text.RegularExpressions.Regex(@"[~`[email protected]#$%^*()=|\{}';.,<>]"); 
    var match = regex.Match(value); 
    character = regex.Match(value).Value; 
    return match.Length == 0; 
} 

、その後

string character; 
if (ClassName.CheckSpecialCharacter(txt_ExpName1.Text, out character) == false) 
{ 
    lblErrMsg.Text = character + " Special characters not allowed"; 
    return; 
} 
0

あなたはちょうどこのような最初の要素を確認し、その後の試合を取得するために、正規表現からMatches(string)機能を使用することができます:

var regex = new Regex(@"[~`[email protected]#$%^*()=|\{}';.,<>]"); 
var matches = regex.Matches("This contains # two [email protected] characters"); 
if (matches.Count > 0) 
{ 
    var firstBadCharacter = matches[0]; 
} 

次に、チェックの結果を例外にラップすることができます。

throw new ArgumentException("Special character '" + firstBadCharacter + "' not allowed."); 
関連する問題