首页 > 解决方案 > 如何在 javascript 中测试模式正则表达式

问题描述

在 javascript 中,我有一个包含模式的字符串'/^\d{7,15}$/',我会测试字符串 str1

我怎样才能使用这个字符串'/^\d{7,15}$/'???

var re = '/^\d{7,15}$/';
var str1 = '12345678'; //should match!

// none of the below methods is working to me

var m1 = str1.match(re); 
console.log(m1); //null

var regex1 = new RegExp(re);
var t1 = regex1.test(str1); 
console.log(t1); //false

标签: javascript

解决方案


您需要\在字符串文字中转义反斜杠:

var re = '^\\d{7,15}$';
var str1 = '12345678'; //should match!
var regex1 = new RegExp(re);
var t1 = regex1.test(str1);

console.log(t1);

我还删除了/您表达式周围的斜线,因为它们不是必需的。正如 Paulpro 在评论中提到的,如果你不控制输入字符串,你可以用str1.slice(1, -1).


推荐阅读