javascript,声明正则表达式的关联数组

标签 javascript

如何声明正则表达式的关联数组? 这不起作用

var Validators = {

    url : /^http(s?)://((\w+\.)?\w+\.\w+|((2[0-5]{2}|1[0-9]{2}|[0-9]{1,2})\.){3}(2[0-5]{2}|1[0-9]{2}|[0-9]{1,2}))(/)?$/gm   

};

已编辑:现在工作!

这在 JS 中有效(就像 C# 中的 @ 运算符)

url : `/^http(s?)://((\w+\.)?\w+\.\w+|((2[0-5]{2}|1[0-9]{2}|[0-9]{1,2})\.){3}(2[0-5]{2}|1[0-9]{2}|[0-9]{1,2}))(/)?$/gm`

但是,由于双重转义,一个在 JS 中,另一个在正则表达式中,仍然无法工作。如果表达式很小,也许肉眼可以手动转义 JS 和 Regex。我的大脑就是不能:)

例如,为了在 regex101.com 上使用经过测试的字符串,所有必需的字符串都应声明为“行”,如下所示:

var exp = String.raw`^(http(s?):\/\/)?(((www\.)?[a-zA-Z0-9\.\-\_]+(\.[a-zA-Z]{2,3})+)|(\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b))(\/[a-zA-Z0-9\_\-\s\.\/\?\%\#\&\=]*)?$`;



var strings = [
    String.raw`http://www.goo gle.com`,
    String.raw`http://www.google.com`,
    ];

最佳答案

new RegExp()包裹它并转义斜杠

var Validators = {

    url : new RegExp( /^http(s?):\/\/((\w+\.)?\w+\.\w+|((2[0-5]{2}|1[0-9]{2}|[0-9]{1,2})\.){3}(2[0-5]{2}|1[0-9]{2}|[0-9]{1,2}))(\/)?$/gm ) 

};

关于javascript,声明正则表达式的关联数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44749369/

相关文章:

javascript - 为什么当 test 为 null 时 test >= 0 为 true?

javascript - 使用 jQuery 通过 try 和 catch 验证用户输入

javascript - 如何在 JavaScript 中重新加载页面后显示警报?

javascript - 如何通过JS代码检测浏览器是否支持SIMD?

javascript - AngularJS 模板内部指令。改变风格?

javascript - sequelize 验证多列 [this.column got undefined]

javascript - JQuery从函数到其他JQuery函数的传递编号

javascript - 如何将织物对象与旋转对齐?

javascript - 客户端 javascript 和 C++ 套接字服务器之间的通信

javascript - 我必须遵循哪些规则才能编写不带分号的有效 Javascript?