我创建了一个正则表达式函数,并在保存数据时调用它。
public static bool CheckSpecialCharacter(string value)
{
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@"[~`!@#$%^*()=|\{}';.,<>]");
if (regex.IsMatch(value))
{
return false;
}
else
{
return true;
}
}
在这里使用:
if (ClassName.CheckSpecialCharacter(txt_ExpName1.Text)==false)
{
lblErrMsg.Text = "Special characters not allowed";
return;
}
现在我没有写“不允许特殊字符”,而是想附加在文本框中输入的第一个特殊字符,所以 如果输入@,则该消息应显示为“特殊字符@不允许”
有可能这样做吗?请帮忙。谢谢。
答案 0 :(得分:1)
请尝试以下代码。
public static string CheckSpecialCharacter(string value)
{
System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@"[~`!@#$%^*()=|\{}';.,<>]");
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;
}
或者你可以通过返回bool并在函数中添加一个out parameter
来实现,但我不会建议.. check this link
编辑 - 在Javascript中执行相同的操作
function CheckSpecialCharacter(value)
{
var res = value.match(/[~`!@#$%^*()=|\{}';.,<>]/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";
}
答案 1 :(得分:0)
试试这个:
public static bool CheckSpecialCharacter(string value, out string character)
{
var regex = new System.Text.RegularExpressions.Regex(@"[~`!@#$%^*()=|\{}';.,<>]");
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;
}
答案 2 :(得分:0)
您可以使用Regex中的Matches(string)
函数来获取匹配项,然后像这样检查第一个元素:
var regex = new Regex(@"[~`!@#$%^*()=|\{}';.,<>]");
var matches = regex.Matches("This contains # two b@d characters");
if (matches.Count > 0)
{
var firstBadCharacter = matches[0];
}
然后您可以将检查结果包装在例外中:
throw new ArgumentException("Special character '" + firstBadCharacter + "' not allowed.");