正则表达式在从 JS 文件和 Chrome 控制台运行时会产生不同的匹配项
regexp resulting different matches when run from js file and chrome console
这很奇怪,我在js代码中有这样一句话:
alert ( "Hello @name , your account will be activated at @date".match(/@{1}['w_]+/g) );
当我从文件运行代码时(使用浏览器打开文件)我得到
[hello,name,your,account,be,activated,date]
但是当我在 chrome 开发者控制台
上运行它时我得到:
[@name,@date]
这是怎么回事? 相同的代码 D/T 结果
更新:
正如@funkwurm试图在评论中提到的那样,当我使用chrome开发人员工具检查页面时,代码发生了变化。
match(/@{1}['w_]+/g)
改为match(/'['w_]+/g)
我使用的是Grails框架,所以我认为使用斜杠语法(//)导致了问题,因为Grails也使用该语法(由于冲突)。
所以把它改成了
var pattern = new RegExp("@{1}[''w_]+","g");
alert ( "Hello @name , your account will be activated at @date".match(pattern) );
但仍然没有效果,当我这样做时alert(pattern)
我仍然/'['w_]+/g
没有@。
谢谢
正如我试图在更新中提到的,问题是在使用 chrome 开发人员工具检查它时缺少 @ 字符(感谢@Lee Kowalkowski 的见解)。
我试图逃离它,但仍然不起作用。
这是我提出的解决方案:
var pattern = new RegExp(String.fromCharCode(64)+"{1}[''w_]+","g"); //64 is ascii value of @
仍然渴望知道为什么@字符丢失
相关文章:
- 如何在运行时在angular 2中加载外部js脚本
- HTML/JS github页面项目没有't在使用firefox运行时加载图像或声音
- 管理node.js中的运行时错误
- 在运行时启动jquery-ui.toggleSwitch.js切换开关
- 如何开发节点.js运行时策略
- Do JS Reference Errors停止运行时线程执行
- jQuery和其他从工作的jsfiddle复制到本地env时未运行的JS
- 如何仅在通过node.js运行script.js时激发代码
- 安装vertx时出错(vertx运行server.js)
- JS中运行时上下文模式的最佳实践
- 在运行时添加js文件时出现语法错误
- Nodejs:在节点服务器启动时运行一个js文件
- 在运行时使用require-js切换出优化的代码
- 谷歌SWIFFY无法在IE9中工作-脚本错误'运行时.js'
- 从gulp运行时在Webstorm中调试节点js
- 在不同端口上运行时,rest api应用程序服务器(express)和Angulars js应用程序之间的Cors问题
- 使用运行时逻辑链接节点.js流
- 如何在node中编写事件发射器.js让你创建一个函数“myFunction”,然后在运行时调用成功或失败
- 当作为脚本运行时.js Node中“this”的上下文是什么
- jquery.validate 中的错误.js“javaScript 运行时错误:无法获取未定义或空引用的属性'