JavaScript 正则表达式原型

2023-11-30

为什么 Chrome 的控制台显示/(?:)/对于 RegExp 的原型?

console.log(RegExp.prototype);
console.log(/a/.__proto__);

这是特定于实现的吗? IE 正在显示//.

这只是出于好奇而提出的问题。当我遇到这个问题时,我试图查看javascript中正则表达式的所有原型方法。当然,我找到了查找这些方法的其他方法,但这让我想知道为什么会显示这个结果。

我希望这个问题以前没有被问过——在 Stackoverflow 上没有找到任何东西。谢谢!


规范中的相关部分

RegExp 原型对象本身就是一个正则表达式对象;它是 [[Class]] 是“RegExp”。 RegExp 原型的初始值 对象的数据属性 (15.10.7) 的设置就像该对象是 由表达式 new RegExp() 创建,其中 RegExp 是该标准 具有该名称的内置构造函数。

然后我们去new RegExp() section,这与使用空字符串调用它相同。现在我们有空的正则表达式对象作为原型。

字符串表示形式被定义为:

返回由字符串“/”连接而成的字符串值, 此 RegExp 对象的源属性的字符串值和“/”; 如果全局属性为真则加“g”,如果ignoreCase则加“i” 属性为 true,如果多行属性为 true,则为“m”。

注意返回的字符串具有正则表达式文字的形式 其计算结果为另一个具有相同行为的 RegExp 对象 这个物体。

最终归结为.source财产(在新的正则表达式部分),这是定义的实现,只要它用作正则表达式时行为相同:

令 S 为与 P 等价的 Pattern 形式的 String,其中 某些字符按如下所述进行转义。 S 可能是也可能不是 与 P 或图案相同;然而,内部程序将 将 S 评估为模式的结果必须与 由构造对象的 [[Match]] 给出的内部过程 内部财产。

Since new RegExp("(?:)") and new RegExp("")行为相同,chrome 和 IE 都正确遵循规范。规范甚至提到了这种具体情况作为示例:

如果 P 是空字符串,则可以通过让 S 来满足此规范 是 ”(?:)”

Chrome 的方式可以被认为是“更好”,因为它似乎也可以作为正则表达式文字工作:/(?:)/是一个有效的正则表达式文字,而//开始一行注释。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript 正则表达式原型 的相关文章

  • 网站 YouTube 嵌入视频不断播放

    我正在使用 youtube 提供的 iframe 在我的网站上嵌入视频 我还使用了一个 css 弹出窗口 这是我从这个页面学到的http www pat burt com web development how to do a css po
  • jquery 验证错误位置

    这看起来很简单 但我无法弄清楚 我正在使用 jquery 验证插件 我验证所有文件 但我想要的是在输入文本行中显示验证消息警报 例如在电子邮件输入中 请填写电子邮件地址 但现在它出现在所有字段下 在我的html中
  • Jquery从下拉列表中获取所选值的id

    我有一个下拉列表 可以从数据库获取值 如下所示 get getJobs function jobs seljobs jobs var i 0 jobs forEach function n alert job id n id 32 67 4
  • 如何按照编写的顺序迭代 javascript 对象属性

    我发现了代码中的一个错误 我希望通过最少的重构工作来解决该错误 此错误发生在 Chrome 和 Opera 浏览器中 问题 var obj 23 AA 12 BB iterating through obj s properties for
  • 如何仅在 NextJS 站点构建期间使用 getInitialProps?

    当使用 NextJS 构建静态站点时 我想要getInitialProps方法仅在构建步骤期间触发 而不是在客户端上触发 在构建步骤中 NextJS 运行getInitialProps 方法 https nextjs org docs fe
  • 动画进度元素值

    我有一个progress元素 该元素如下所示 div class container div div div
  • 如何使用 jest 模拟第三方库

    我正在开发一个node js应用程序使用nestjs我有一堂课叫LoggerService如下 export class LoggerService private logger Rollbar constructor this logge
  • Leaflet js虚构地图

    我是 Leaflet 的新手 我想了解如何创建完全交互式的虚构地图 我有一张图像想要转换为传单地图 该图像基本上像图表一样具有许多连接和点 我想首先将该图像转换为地图 能够将鼠标悬停在这些点上 突出显示它们并显示有关它们的信息 并且还可以在
  • [A-z0-9]+ 正则表达式匹配方括号[重复]

    这个问题在这里已经有答案了 我正在努力解决以下正则表达式 A z0 9 如果针对此字符串进行测试 a919238 a asd 它返回a919238 包括方括号 我尝试输入我在 regex101 上的测试用例 https www regex1
  • Node.js - console.log 不显示数组中的项目,而是显示 [Object]

    我在注销对象内数组的内容时遇到问题 实际的物体看起来像这样 var stuff accepted item1 item2 rejected response Foo envelope from The sender to new item1
  • 仅一页 JavaScript 应用程序

    您是否尝试过单页 Web 应用程序 即浏览器仅从服务器 获取 一页 其余部分由客户端 JavaScript 代码处理 此类 应用程序页面 的一个很好的例子是 Gmail 对于更简单的应用程序 例如博客和 CMS 使用这种方法有哪些优点和缺点
  • 如何使用 JavaScript 获取没有 HTML 元素的纯文本?

    我的 HTML 中有 1 按钮和一些文本 如下所示 function get content I don t know how to do in here
  • 如何通过php获取网页的Open Graph协议?

    PHP 有一个简单的命令来获取网页的元标记 get meta tags 但这仅适用于具有名称属性的元标记 然而 开放图谱协议如今变得越来越流行 从网页获取 opg 值的最简单方法是什么 例如 我看到的基本方法是通过 cURL 获取页面并使用
  • vim 中的正则表达式查找和替换:向数字添加 .0

    我有一个如下所示的文件 1 1 0 1 6 1 0 2 8 1 0 3 10 1 0 4 12 1 0 6 如何为所有数字添加 0 后面的数字除外 我认为用正则表达式来做到这一点应该不会太难 但是我的正则表达式知识太生疏了 使用 VIM s
  • 如何在 Angular 中从父组件访问子组件?

    I have mat paginator在子组件a中 如下所示 子组件 html
  • JS用正则表达式替换数字

    我有元素的标识符 如下所示 form book 1 2 3 我想要的是用其他值替换该标识符中的第二个数字 我将函数 match 与以下正则表达式一起使用 var regexp d d d 但它返回我包含的数组 1 2 3 2 因此 当我尝试
  • 淡出和循环一组 div 的最佳方式

    假设我有以下 div div class a You are funny div div class b You are smart div div class c You are cool div 最好的展示方式是什么div a持续 5
  • 为什么“tbody”不设置表格的背景颜色?

    我在用 tbody 作为 CSS 选择器来设置background color在一个表中 我这样做是因为我有多个 tbody 表内的部分 它们具有不同的背景颜色 我的问题是 当使用border radius在细胞上 细胞不尊重backgro
  • KeyboardAvoidingView - 隐藏键盘时重置高度

    我正在使用 React NativeKeyboardAvoidingView设置我的高度View当显示键盘时 但是当我关闭应用程序中的键盘时 视图的高度不会变回原来的值
  • 用于 C# XNA 的 Javascript(或类似)游戏脚本

    最近我准备用 XNA C 开发另一个游戏 上次我在 XNA C 中开发游戏时 遇到了必须向游戏中添加地图和可自定义数据的问题 每次我想添加新内容或更改游戏角色的某些值或其他内容时 我都必须重建整个游戏或其他内容 这可能需要相当长的时间 有没

随机推荐

  • Typo3:添加锚点但不知道为什么

    我的页面上有一个页面内容元素 它的 ID 为 3 并且有翻译 该元素使用以下 Typoscript 读出 lib marker RECORDS lib marker tables tt content source 3 dontCheckP
  • 如何使用 CSS 自定义 HTML5 输入范围类型的外观?

    我想自定义 HTML5 中范围输入类型的外观 使其看起来像进度条 我尝试过使用 CSS 类应用一些常见的 CSS 属性 但它们似乎不起作用 谁能指导我如何定制它 input type range webkit appearance none
  • 使用nodejs显示python脚本执行的进度条

    我正在使用 nodejs 启动这样的 python 脚本 var cp require child process var spw cp spawn python tql py spw stdout on data function dat
  • 使用java和POI APACHE将.xls转换为xlsx

    我正在尝试使用 POI APACHE 在 java 中编辑 excel 文件 我必须将 xls 转换为 xlsx 因为我需要将文件发送到共享点 这就是为什么它不能用不同的扩展名重命名 我该怎么办呢 我在他们的网站上找不到任何示例 谢谢 im
  • Spring用额外的登录参数记住我

    在 spring mvc 应用程序中 我在登录屏幕上捕获一个附加的 位置 参数 并使用它除了用户名之外进行身份验证 所以在 loadUserByUsername 中我的sql查询是这样的 select from user where use
  • 将字符串值转换为变量名 |字符串值包含变量名称

    Double new val 10 0 String a new String b val Double v1 25 0 Double result 0 0 Public void getVal String variable c cont
  • 如何改变winform DataGridview标题的颜色?

    我尝试过这样做 但没有成功 是否可以 做到这一点的方法是设置EnableHeadersVisualStyles数据网格视图的标志False 并通过设置背景颜色ColumnHeadersDefaultCellStyle BackColor财产
  • 从 Uri 获取单独的查询参数[重复]

    这个问题在这里已经有答案了 我有一个 uri 字符串 例如 是否有一个现有函数可以将查询参数字符串转换为字典 就像 ASP NET Context Request 那样 我正在编写一个控制台应用程序而不是一个 Web 服务 因此没有 Con
  • 从目录中选择随机文件

    我正在尝试创建一个网站 用户可以提交照片 然后在另一个页面上随机地一张一张地查看其他照片 我有一个名为 uploads 的目录 用于提交图片 我在读取文件中的图片时遇到问题 我只想从上传目录中随机选择一张图片并将其显示在页面上 任何建议表示
  • 使用 Google App 脚本在工作表中创建日历活动并想要添加参与者

    我正在尝试使用 Google App Script 在工作表中创建日历事件 我对此很陌生 该表包含活动的详细信息 日期 时间 活动标题和嘉宾名单 以及日历 ID 这是培训日历 我想让最终用户轻松填写表格上的信息 单击 立即安排 然后运行脚本
  • Hartl 对 config.serve_static_files 的sample_app 警告,并且测试已定义

    我正在尝试测试 Hartl 的sample app 这是我运行后收到的消息bundle exec rake test DEPRECATION WARNING The configuration option config serve sta
  • Lambdify 参数积分

    我有以下问题 我想要lambdify a sympy包含参数积分的表达式 例如Integral tanh a x x 0 1 我尝试进行手动实施像这儿 我们想要的本质上是将积分转换为如下形式 lambda theta quad lambda
  • 用于调整/校准启发式算法属性的软件

    今天看到有一个软件叫WinCalibra 向下滚动一点 它可以将具有属性的文本文件作为输入 然后 该程序可以根据算法的输出值优化输入属性 看这张纸或用户文档以获取更多信息 请参阅上面的链接 遗憾的是 doc 是一个压缩的 exe 您知道在
  • 使用 java 流将两个相同大小(和不同类型)的列表组合成域对象列表

    我有两个相同大小的列表ids and results我想用域对象创建新列表 List
  • IE9 + css:固定标头表的问题

    所以 我认为这是一个 CSS 问题 但基本上 我提供的 HTML 在反应式布局中包含一个固定的标头表 Code http jsfiddle net JpRQh 10 有3行数据 但在IE9中 表格行数似乎疯狂高 并且滚动条已被禁用 我在固定
  • 为什么 SQL 中没有“product()”聚合函数? [复制]

    这个问题在这里已经有答案了 当有 Sum min max avg count 函数时 有人可以帮助理解为什么没有 Product 内置函数 这个聚合函数最有效的用户实现是什么 谢谢 三位一体 如果您有可用的指数函数和对数函数 则 PRODU
  • 是否有一个函数可以检查字符串中的字符是否是字母表中的字母? (迅速)

    我正在将 python 程序转换为 swift 其中一个部分使用 for 循环来保留字符串中的每个字符 如果它是字母 在python中 就像使用 isalpha 一样简单 swift中有什么可以做到这一点吗 python 中的代码 word
  • PHP、PDO、MySQL,注意:尝试获取非对象的属性

    我仍在尝试围绕 php 进行思考 如果这是一个简单的错误 那么很抱歉 我已经搜索了很长一段时间 只能设法得到不同的错误 例如 未定义的索引 我试图做的是有一个函数可以从表中获取数据 目前它不包含很多数据 但最终将包含每个主网页的所有内容 它
  • NSParagraphStyle iOS - 如何检测块和列表?

    我有一个 NSParagraphStyle 对象 当使用 NSLog 检查时 它包含列表和块 但是似乎完全没有办法访问它们 我使用 OS X 创建文档并将其传输到 iOS 的文本视图中 其中列表和表格可以成功重新创建并显示在 NSLog 中
  • JavaScript 正则表达式原型

    为什么 Chrome 的控制台显示 对于 RegExp 的原型 console log RegExp prototype console log a proto 这是特定于实现的吗 IE 正在显示 这只是出于好奇而提出的问题 当我遇到这个问