javascript - 正则表达式不是一个函数

标签 javascript jquery validation

我正在尝试使用 jQuery 创建一个简单的验证方法,但没有插件。所以我编写了这段代码:

(function ($) {
  $.fn.validate = function () {
    var emailRegex = '^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$';
    var error = false;
    if ($('#vorname').val() == "") {
      $('#vorname').after('<span class="error">Name fehlt</span>');
      error = "true";
    }
    if ($('#nachname').val() == "") {
      $('#nachname').after('<span class="error">Name fehlt</span>');
      error = "true";
    }
    if ($('#email').val() == "") {
      $('#email').after('<span class="error">Email fehlt</span>');
      error = "true";
    } else if (!emailRegex.test($('#email').val())) {
      $('#email').after('<span class="error">Keine gültige Email</span>');
      error = "true";
    }
    if (error == true) {
      return false;
    } else {
      return;
      true;
    }
  }
})(jQuery);

$(document).ready(function () {
  $('#button').click(function () {
    $('#button').validate();
  });
});

但我总是收到这样的消息:我的正则表达式测试不是一个函数。有什么问题吗?

最佳答案

你写:

var emailRegex = '^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$';

might want to write :

var emailRegex = new RegExp('^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$');
// or simpler
var emailRegex = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/;

关于javascript - 正则表达式不是一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22983453/

相关文章:

javascript - 访问 javascript 中的内部函数

javascript - 数据表所选行数

Angular - 表单生成器 - 表单控件无效未更新/ngIf 错误

jquery - 如何用$.ajax提交触发validationEngine?

javascript - 在 JavaScript 中创建数组最常见值的索引数组

javascript - Highcharts - 仅显示特定类别中的特定系列?

javascript - 表单输入onload替代

javascript - jquery 切换最初需要关闭帮助

mysql - 跨多列的续集唯一验证

javascript - Bootstrap 菜单将另一个 div 推开