使用正则表达式和布尔值清理输入

时间:2017-01-27 02:21:06

标签: c#

我正在使用Regex验证电子邮件,密码和用户名输入是否合法。它没有验证。用户可以输入他们想要的任何内容,它将进入我的数据库。

为了执行//功能,我希望所有布尔值都为真。

    private void bunifuFlatButton2_Click(object sender, EventArgs e)
    {
        string username = textBox1.Text;
        bool IsRealUser = Regex.IsMatch(username, @"\A(?:[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\.)+[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?)\Z");
        string password = textBox2.Text;
        bool IsRealPass = Regex.IsMatch(password, @"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,15}$");
        string email = textBox4.Text;
        bool IsRealEmail = Regex.IsMatch(email, @"^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$");

        if (textBox1.Text == "" || textBox2.Text == "" || textBox3.Text == "" || textBox4.Text == "")
        {
            System.Windows.Forms.MessageBox.Show("Fill out the required forms!");
            return;
        }
        else if (textBox2.Text != textBox3.Text)
        {
            System.Windows.Forms.MessageBox.Show("Your passwords are not matching");
        }

        else if (IsRealPass || IsRealUser || IsRealEmail) //I want all these inputs to be true in order to execute //function.
        {
             //function
        }

1 个答案:

答案 0 :(得分:3)

如上所述,如果任何测试都为真,则将执行该块。

    else if (IsRealPass || IsRealUser || IsRealEmail)
    {
         //function
    }

您需要&&,以便所有测试条件必须为true才能执行该块。

    else if (IsRealPass && IsRealUser && IsRealEmail)
    {
         //function
    }