javascript - 如何在 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
解决方案
您需要\
在字符串文字中转义反斜杠:
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)
.
推荐阅读
- powershell - 如何从返回非布尔结果的 cmdlet 做出基于布尔值的控制决策?
- javascript - 当我单击同一个 div 或 div 外部时,如何隐藏和切换弹出元素?
- algorithm - 在广度优先搜索和深度优先搜索中,为什么访问的数组是全局初始化的
- spring - Spring Data JPA 投影性能
- javascript - Web Audio API getByteTimeDomainData 在 Safari 中不起作用
- javascript - 尝试通过 requirejs 加载时返回值未定义
- python - Python - 覆盖另一个类的变量?
- java - 斐波那契数列检查(检查用户输入的数字是否为斐波那契数)
- python - 如何在神经网络中推导权重和偏差?
- python - 按降序查找最近的 10 个点