小编RMK*_*RMK的帖子

Javascript正则表达式将文本字段限制为仅限数字(必须允许不可打印的键)

我收到了以前开发人员的PHP/JS代码,我需要在手机号码字段中添加号码验证.我已经有了HTML验证,但是我需要添加一个,如果有人按下了无效的键,它不会显示为仅稍后用红色突出显示该字段,因为它包含无效的输入.

我已经看过很多正则表达式并且尝试了它们,但是它们或者我需要的效果是:如果输入了字母或特殊字符,不接受也不显示,所有其他输入(数字,键)被接受(我需要根本不显示无效字符,不显示然后删除).正在运行最多的正则表达式是这样的:

function filterNonDigits(evt)
{
  var event = evt || window.event;
  var keyentered = event.keyCode || event.which;
  keyentered = String.fromCharCode(keyentered);

  //var regex1 = /[0-9]|\./;
  var regex2 = /^[a-zA-Z.,;:|\\\/~!@#$%^&*_-{}\[\]()`"'<>?\s]+$/;

  if( regex2.test(keyentered) ) {
    event.returnValue = false;
    if(event.preventDefault) event.preventDefault();
  }
Run Code Online (Sandbox Code Playgroud)

当我使用注释的regex1(IF条件反转)时,自然它将输入限制为只有数字,从而阻止所有键,如Delete,BackSpace等.当使用regex2时,我仍然无法按下删除或小键盘上的数字.

所以我的问题是,上面的代码可以修改为只接受数字而且还允许键吗?另一个重要的一点是,我需要一种不对这些键使用键码(8,24等)的方法,以确保可以使用所有键盘类型.


新更新:

所以我的解决方案如下:如果存在"oninput"属性,我使用Ehtesham提供的解决方案,如果不存在,则备份使用Rohan Kumar提供的解决方案.所以它是这样的:

if (obj.hasOwnProperty('oninput') || ('oninput' in obj)) 
{
    $('#mobileno').on('input', function (event) { 
        this.value = this.value.replace(/[^0-9]/g, '');
    });
} 
else 
{
    $('#mobileno').on('keypress',function(e){
        var deleteCode = 8;  var backspaceCode = 46;
        var key = e.which;
        if ((key>=48 && key<=57) || …
Run Code Online (Sandbox Code Playgroud)

javascript regex validation jquery validationrules

6
推荐指数
2
解决办法
6万
查看次数

发送电子邮件时使用Gmail SMTP的PHPMailer会变慢

我发现很少有较旧的线程有类似的问题,但大多数没有答案,或者如果有的话,这些建议与我的情况无关.

我在一个点上完成了PHP邮件功能的设置,效果很好.我不得不在一点上格式化硬盘并从头开始设置服务器.之后,PHP邮件功能变得缓慢.在研究解决方案时,我发现大多数人都推荐使用PHPMailer.我改用了,但问题仍然存在.

大多数情况下,我每页至少发送两封电子邮件,但是使用相同的对象.大约有3-4秒的延迟.请在下面找到相关代码($ email1和$ email2是包含有效电子邮件地址的数组):

function sendEmail ($email1, $subject1, $message1, $email2, $subject2, $message2) 
{
    require_once('../PHPMailer/class.phpmailer.php');

    $mail = new PHPMailer();
    $mail->IsSMTP(); 
    $mail->SMTPDebug = 0; 
    $mail->SMTPAuth = true; 
    $mail->SMTPSecure = 'ssl';
    $mail->Host = "smtp.gmail.com";
    $mail->Port = 465; 
    $mail->IsHTML(true);
    $mail->Username = $gmail_username;
    $mail->Password = $gmail_password;
    $mail->SetFrom($gmail_address,$email_title);

    $mail->Subject = $subject1;
    $mail->Body = $message1;
    foreach($email1 as $k => $v) {  $mail->AddAddress($v);  }       
    if(!$mail->Send()) {    $emailreturn['cust'] = 0;   } else {    $emailreturn['cust'] = 1;   }
    $mail->ClearAddresses();

    $mail->Subject = $subject2;
    $mail->Body = $message2;
    foreach($email2 as $k => …
Run Code Online (Sandbox Code Playgroud)

php windows phpmailer

6
推荐指数
3
解决办法
1万
查看次数