正则表达式里`if if检查
问题描述:
我试图在if
里面使用正则表达式。奇怪,但它不起作用。它如何被修复?正则表达式里`if if检查
它的工作原理:
var lang = 'lang-js';
if (lang == 'lang-js') {
alert('ok');
}
它也能工作(只是为了测试目的):
var lang = 'lang-js';
if (lang == 'lang-' + 'js') {
alert('ok');
}
但是这一次不工作:
var lang = 'lang-js';
if (lang == 'lang-' + /[a-z]/) {
alert('not ok');
}
答
使用这样的事情
if (/^lang-[a-z]/.test(lang)) {
你可能不得不调整正则表达式,因为这只是寻找一个字符。
答
其因为typeof /[a-z]/ == 'object'
并在''+/[a-z]/
工作toString
,你的结果将是字符串lang-/[a-z]/
类型' '朗' +/[A-Z] /'在浏览器控制台,并看看会发生什么。你并没有进行正则表达式测试,而是将一个正则表达式与一个字符串连接起来,该字符串产生一个字符串,然后将其与另一个字符串进行比较。这与jQuery无关,所以我删除了该标签。 – nnnnnn
http://*.com/questions/6603015/check-whether-a-string-matches-a-regex –