const regExp = /=([a-zA-Z0-9\$]+?)\(decodeURIComponent/
const fnnameresult = regExp.exec(data)
const fnname = fnnameresult[1]
这段代码可以正常执行,当放入模板字符串中时,
const script = script = document.createElement('script')
script.innerHTML = `
const regExp = /=([a-zA-Z0-9\$]+?)\(decodeURIComponent/
const fnnameresult = regExp.exec(data)
const fnname = fnnameresult[1]
`
document.body.appendChild(script)
会报错
Uncaught SyntaxError: Invalid regular expression: /=([a-zA-Z0-9$]+?)(decodeURIComponent/: Unterminated group
模板字符串中不能写复杂js逻辑,比普通字符串厉害的是它能在字符串中写变量。模板字符串跟普通字符串一样,只不过是说在里面可以使用${变量}。使用起来一般是
var a = "123"
console.log(`这是${a}`) // 输出这是123
var a = 123
var b = 456
console.log(`这是${a>b ? a:b}`) // 输出这是456
三元表达式,一元运算这些也是可以在${}里面写,因为这些最终返回的也是变量,但不能在里面定义变量,写复杂逻辑js
这个为啥不把一个能运行的表达式放在一个方法里面,然后在模版中调用这个方法呢???
看一下这篇文章
http://t.zoukankan.com/lvdabao-p-4253704.html
不知道要你是要显示正在匹配的结果,还是显示正则表达式,如果是显示结果,那不应该放里面,如果是显示表达式,那就用单引号,变成字符串就可以了
包裹你要写的js
模板字符串也不能放js表达式啊
加个转义的问题,没一个回答到点子上的,散了吧散了吧