正则表达式用法

正则表达式在javascript中的一般用法:

eg: 前端验证Email的格式是否正确

  function ValidEmail()
        {
            if(RequiredName())
            {
                if( $.trim($("#Email").val())=="")
                {
                    return true;
                }
                else
                {
                    var email = document.getElementById("Email");
                    var emailreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
                    if(!emailreg.test(email.value))
                    {
                        alert('提示\n请输入有效的E_mail!');
                        $("#Email").focus();
                        return false;
                    }
                    else
                    {
                        return true;
                    }
                }
            }
        }

说明:验证Email格式是否正确,可以为空。

接下来 <asp:Button ID="btn_Save" CssClass="button" runat="server" Text="保存" OnClick="btn_Save_Click"
                            OnClientClick="return ValidEmail();"

即可。

 

正则表达式在C#中一般用法:

using System.Text.RegularExpressions;

1.检查数据格式是否错误。

string TestRegex = @"^[-+]?\d+(\.\d+)?$";

 if (!Regex.IsMatch(txtLongitude.Text.Trim(), TestRegex ) || !Regex.IsMatch(txtLatitude.Text.Trim(), TestRegex ))
 {
             ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('经纬度格式错误!');</script>");

 }

2.找出匹配的数据,并取得

eg:

        //构造解析表格数据的正则表达式
Regex regex = new Regex(@"<tr[^<]*<td>(.*?)</td>[^<]*<td>(.*?)</td>[^<]*<td>(.*?)</td>[^<]*<td>(.*?)</td>[^<]*<td>(.*?)</td>[^<]*<td>(.*?)</td>[^<]*<td>(.*?)</td>[^<]*<td>(.*?)</td>[^<]*<td>(.*?)</td>[^<]*</tr>|tr[^<]*<td>(?<breed>.*?)</td>[^<]*\s.*?[^<]*<td>(?<makings>.*?)</td>[^<]*\s.*?[^<]*<td>(?<format>.*?)</td>[^<]*\s.*?[^<]*<td>(?<steelFactory>.*?)</td>[^<]*\s.*?[^<]*<td>(?<address>.*?)</td>[^<]*\s.*?[^<]*<td>(?<price>.*?)</td>[^<]*\s.*?[^<]*<td>(?<upToDate>.*?)</td>[^<]*\s.*?[^<]*<td><span[^>]*>(?<riseOrTransfer>.*?)</span></td>[^<]*\s.*?[^<]*<*.*?>[^<]*\s.*?[^<]*<td>*.*?></td>[^<]*\s.*?[^<]*<*.*?>\s[^<]*</tr>",
               RegexOptions.Compiled | RegexOptions.IgnoreCase);

MatchCollection mc = regex.Matches(tb.Text);//tb.Text为存放的是从html页面读取的数据

string[] array = new string[9];//构建数组,用于保存数据

foreach (Match m in mc)
{

    array[1] = m.Groups["breed"].Value;//匹配的值
        array[2] = m.Groups["makings"].Value;
        array[3] = m.Groups["format"].Value;
        array[4] = m.Groups["steelFactory"].Value;

    ......
}

接下来就可以将匹配的值存起。

posted @ 2012-02-29 13:10  烁星  阅读(258)  评论(0编辑  收藏  举报