【发布时间】:2018-07-05 05:16:21
【问题描述】:
我正在尝试在 javascript 中编写一个正则表达式来验证一个字符串是否是一个有效的 jquery 选择器。这是严格的教育,不是我的任何项目的特殊要求
模式
/^(\$|Jquery)\(('|")[\.|#]?[a-zA-Z][a-zA-Z0-9!]*('|")\)$/gi
它适用于以下测试
$("#id")//true
$('.class')//true
jquery('.class')//true
jquery('div')//true
我的问题是$('#id") 上的测试也返回 true,即在 js 中使用混合单引号和双引号无效。这个怎么限制。我们可以有条件正则表达式吗?
const pattern = /^(\$|Jquery)\(('|")[\.|#]?[a-zA-Z][a-zA-Z0-9!]*('|")\)$/gi;
[
`$("#id")`, //true
`$('.class')`, //true
`jquery('.class')`, //true
`jquery('div')`, //true
].forEach(str => console.log(pattern.test(str)));
【问题讨论】:
标签: javascript regex