/^['"].+?['"]$/.test("2")
这个正则的函含义是:
在浏览器控制台结果返回false,为什么?
我在https://regexr.com/里面试了,可以匹配到:
我想实现的功能是"a" ---> a
'a' ---> a
"2" ---> 2
'2' ---> 2
/^['"].+?['"]$/.test("2")
这个正则的函含义是:
在浏览器控制台结果返回false,为什么?
我在https://regexr.com/里面试了,可以匹配到:
我想实现的功能是"a" ---> a
'a' ---> a
"2" ---> 2
'2' ---> 2
/^['"].+?['"]$/.test('"2"')
或者
/^['"].+?['"]$/.test("\"2\"")
这样就可以返回true
你原来test返回false
是因为你传人测试的字符串实际为2
,而不是你预期的"2"
而已。
"a" ---> a
'a' ---> a
这两个过程不觉得很神秘吗?左边是个字符串,右边是个啥?标识符吗?
难道说
let obj = {a: 123}
let p = "a"
console.log(obj[p])
字符串首尾需要是
'|"
这三个中的一个,你这里的"2"
代表字符串2
,并不是字符串"2"