检查字符串包含JavaScript代码还是普通字符串?

检查字符串包含JavaScript代码还是普通字符串?,javascript,string,Javascript,String,有一种情况是在javascript字符串中运行代码。但是有两种可能性,字符串可以包含javascript,也可以不包含javascript。所以我想在执行字符串之前首先检查是否有javascript代码 let code = "alert('Run Run')"; let runFunction = new Function(code); runFunction(); 我试过regex apporach,但不起作用 let exists = code.match(/[!@#$%^&*(

有一种情况是在javascript字符串中运行代码。但是有两种可能性,字符串可以包含javascript,也可以不包含javascript。所以我想在执行字符串之前首先检查是否有javascript代码

let code = "alert('Run Run')";
let runFunction = new Function(code);
runFunction();
我试过regex apporach,但不起作用

let exists = code.match(/[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/) ? "YES" : "NO";
let exists=code.match(/[!@\\$%^&*()\+\-=\[\]{};':“\\\\\,.\/?]/)?“是”:“否”;
是否有任何方法可以检查这一点。

在真正运行字符串之前,您可以查看字符串的语法,看看它是否可以正确解析,尽管这实际上只是尝试以Javascript的形式执行字符串

conststringisjs=(str)=>newpromise((resolve)=>{
window.addEventListener('unhandledrejection',(errorEvent)=>{
//不要用其他信息污染控制台:
errorEvent.preventDefault();
解决(errorEvent.reason.message==‘无语法问题’);
},{once:true});
Promise.resolve()然后(()=>{
eval('throw new Error(“No syntax problems”);'+str);
});
});
(异步()=>{
console.log(
等待stringIsJS(“你好”),
等待stringIsJS('const foo=“bar”),
);

})();
我假设您将在输入
code
上运行一些
eval
。那么
try-catch
调用
eval(code)
并让javascript处理它怎么样?@RahulBharadwaj不幸的是,
try/catch
没有捕获已计算字符串中的语法错误(或
新函数
s)-您必须为此在窗口中添加错误侦听器。