JavaScript/ECMAScript是一种常规语言吗?

JavaScript/ECMAScript是一种常规语言吗?,javascript,regex,language-agnostic,Javascript,Regex,Language Agnostic,我尝试了一些谷歌搜索,但我想不出任何文章/以前的问题来解决这个问题。原因是我和某人在使用输入验证拒绝可能的XS方面有一个小争议。我知道HTML并不是一种常规语言,但我不能像javascript那样有力地证明这一点 我检查了这个链接: 我想到了这一点:由于html中的标记可以无限嵌套,这就是为什么html不是一种常规语言的直观概念。通过扩展,由于可以无限地用{}嵌套JavaScript代码块,因此JavaScript也不是一种常规语言 我希望看到一个更正式的陈述,支持或反对这个非正式的提议。或者

我尝试了一些谷歌搜索,但我想不出任何文章/以前的问题来解决这个问题。原因是我和某人在使用输入验证拒绝可能的XS方面有一个小争议。我知道HTML并不是一种常规语言,但我不能像javascript那样有力地证明这一点

我检查了这个链接:

我想到了这一点:由于html中的标记可以无限嵌套,这就是为什么html不是一种常规语言的直观概念。通过扩展,由于可以无限地用
{}
嵌套JavaScript代码块,因此JavaScript也不是一种常规语言


我希望看到一个更正式的陈述,支持或反对这个非正式的提议。或者甚至可以讨论编程语言中的正则表达式扩展,这些扩展可能使不编写解析器就可以完成这类工作

事实上,JavaScript并不是一种常规语言,大括号必须像你的直觉所暗示的那样平衡,这一点可以证明

一个证明语言不是规则语言的有用工具是。您可以使用它来演示,如果JavaScript是规则的,那么

function(){ function() { function(){ ... function () {

(其中
{
不匹配)当被某个前缀和后缀包围时,可以重复多次,这显然与大括号必须匹配这一事实相矛盾。

任何包含括号和算术表达式的语法都不会是常规语法。XSS保护也不是关于输入验证,而是关于t输出的清理。此问题似乎与主题无关,因为它涉及计算机科学,而不是实用编程。请尝试cs.stackexchange.com.Flagged问题以进行移动。(比投票关闭更有帮助。)@是的,我们已经在讨论输出转义,但是我们希望前面有一个验证过滤器,这样我们就可以记录可疑活动。泵引理给我的正是我想要的,谢谢!