相关疑难解决方法(0)

为什么正则表达式如此具有争议性?

在探索正则表达式(也称为RegEx-es)时,有许多人似乎将正则表达式视为圣杯.看起来如此复杂的东西 - 只是必须回答任何问题.他们倾向于认为使用正则表达式可以解决所有问题.

另一方面,也有许多人试图不惜一切代价避免使用正则表达式.他们试图找到解决正则表达式的方法并接受额外的编码只是为了它,即使正则表达式是一个更紧凑的解决方案.

为什么正则表达式被认为是如此有争议?是否存在关于它们如何工作的普遍误解?或者可能是一个普遍的信念,正则表达式通常很慢?

regex

209
推荐指数
13
解决办法
4万
查看次数

使用jQuery和regex验证电子邮件地址

我不太清楚如何做到这一点.我需要使用正则表达式验证电子邮件地址,如下所示:

[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)
Run Code Online (Sandbox Code Playgroud)

然后我需要在这样的jQuery函数中运行它:

$j("#fld_emailaddress").live('change',function() { 
var emailaddress = $j("#fld_emailaddress").val();

// validation here? 

if(emailaddress){}

// end validation

$j.ajax({  
        type: "POST",  
         url: "../ff-admin/ff-register/ff-user-check.php",  
        data: "fld_emailaddress="+ emailaddress,  
        success: function(msg)
        { 
            if(msg == 'OK') { 
            $j("#fld_username").attr('disabled',false); 
            $j("#fld_password").attr('disabled',false); 
            $j("#cmd_register_submit").attr('disabled',false); 
            $j("#fld_emailaddress").removeClass('object_error'); // if necessary
            $j("#fld_emailaddress").addClass("object_ok");
            $j('#email_ac').html('&nbsp;<img src="img/cool.png" align="absmiddle"> <font color="Green"> Your email <strong>'+ emailaddress+'</strong> is OK.</font>  ');
            } else {  
            $j("#fld_username").attr('disabled',true); 
            $j("#fld_password").attr('disabled',true); 
            $j("#cmd_register_submit").attr('disabled',true);  
            $j("#fld_emailaddress").removeClass('object_ok'); // if necessary
            $j("#fld_emailaddress").addClass("object_error");
            $j('#email_ac').html(msg);
            }
        }
     });
});
Run Code Online (Sandbox Code Playgroud)

验证在哪里以及表达式是什么?

regex email validation email-validation

173
推荐指数
5
解决办法
42万
查看次数

希望构建一些正则表达式来验证域名(RFC 952/RFC 1123)

我们的一位客户在通过对我们的系统的API调用触发之前,在自己的软件中验证电子邮件地址.但问题是他们的验证规则与我们的系统不匹配,因此他们正在解析和接受违反我们规则的地址.这导致许多失败的呼叫.

他们正在解析诸如"dave@-whatever.com"之类的东西,这违反了RFC 952/RFC 1123规则,因为它以连字符开头.他们要求我们为他们提供我们的正则表达式列表,以便他们可以在他们的平台上更新验证以匹配我们的.

所以,我需要找到/构建一个RFC 952/RFC 1123.我在另一个SO线程中找到了这个(我是一个潜伏者:)),它是否合适并防止这些非法域被发送?

"^(([a-zA-Z]|[a-zA-Z][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z]|[A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9])$";
Run Code Online (Sandbox Code Playgroud)

regex api rfc rfc1123

1
推荐指数
1
解决办法
1593
查看次数

标签 统计

regex ×3

api ×1

email ×1

email-validation ×1

rfc ×1

rfc1123 ×1

validation ×1