javascript - 正则表达式不允许连续的点或下划线

标签 javascript jquery regex

我有一个正则表达式,它只允许字母数字字符以及点 (.) 和下划线 (_)

它不允许连续的下划线,但允许连续的点。谁能指导我解决这个问题。我不需要连续的点或下划线。 下面是 JavaScript 函数

function checkLogin() {
  var login = $("#user_login").val();
  var regex = new RegExp("^(?!.*__.*)[a-zA-Z0-9_.]+$");
  var flag = true;
  if (regex.test(login)) {
    $('#valid_character_error').css("display","none");
  } 
  else  {
    $('#valid_character_error').css("display","block");
    flag = false;
  }
  return flag;
}

最佳答案

只需包含与负向先行内的两个点相匹配的模式即可。

var regex = new RegExp("^(?!.*(?:__|\\.\\.))[a-zA-Z0-9_.]+$");

[a-zA-Z0-9_.]+ 将写为 [\w.]

更新:

var regex = new RegExp("^(?!.*?[._]{2})[a-zA-Z0-9_.]+$");

DEMO

关于javascript - 正则表达式不允许连续的点或下划线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30316907/

相关文章:

javascript - 如何创建一个 SSRS 报告,该报告将钻取详细报告,同时在另一个选项卡中打开详细报告?

jquery - 动画 jQuery 使用 CSS3 对 div 进行排序

Python在正则表达式定义的索引处截断字符串

regex - 如何使用 Perl 匹配 Unicode 文本中的俄语单词?

javascript - 在 JavaScript 中单击按钮时下载按钮和输入字段没有响应

javascript - 如何在 Javascript/Python/Django 中向数字添加千位分隔符

javascript - 字体仅在之前在页面中使用过后才会出现在 Canvas 上

javascript - 如何使用jquery改变元素的位置

javascript - 如何获取输入数组元素jquery的所有值

正则表达式:找到四个选项卡,然后选择选项卡之前的第一个 {