我收到了以前开发人员的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) 我发现很少有较旧的线程有类似的问题,但大多数没有答案,或者如果有的话,这些建议与我的情况无关.
我在一个点上完成了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)