javascript - 如何在 javascript 中使用正则表达式?

标签 javascript

我在 regexlib 找到了一个正则表达式,我想在使用 javascript 的简单字符串验证中使用它。

正则表达式是:

^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$

但我尝试像这样使用它:

mystring = 'hello@world.com';
re = '^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$';

    if(mystring.match(re)){
     console.log('true');
    }

我收到了这个控制台错误:

Uncaught SyntaxError: Invalid regular expression: //^([a-zA-Z0-9_-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([a-zA-Z0-9-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$/: Range out of order in character class

怎么了? 我不是专业人士。这只是我在空闲时间尝试做的一个简单项目。

最佳答案

尝试这样做:

var re = new RegExp('^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$');

在 javascript 中,\ 字符会对字符串进行转义,因此这就是它不起作用的原因。在前面的例子中,我只是将它们加倍,这应该可行。这是实践中的:

mystring = 'hello@world.com';
re = new RegExp('^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$');

if (mystring.match(re)) {
  console.log('true');
}

您还可以尝试像这样的正则表达式文字:

var re = /^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;

这是实践中的:

var mystring = 'hello@world.com';
var re = /^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;

if (mystring.match(re)) {
  console.log('true');
}

关于javascript - 如何在 javascript 中使用正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50093241/

相关文章:

javascript - 将一个 div 堆叠在隐藏在滚动条上的 Bootstrap 导航栏之上

javascript - 如何使用 javascript 和 Selenium 双击 WebElement

javascript - 链接这个 jquery 表达式

javascript - jQuery 验证器的 addMethod 不支持 Firefox 中的事件对象

javascript - 使用 react-router v4 添加或更新查询参数而不重新渲染主组件

javascript - 为什么 ng-show 不起作用?

javascript - 国际电话输入号码格式有什么办法吗?

javascript - jQuery Mobile 单选按钮,onclick 事件有问题吗?

javascript - 如何在 vue-cli 上更改 main.js 的路径?

javascript - 本地存储不适用于对象数组