如何为我的正则表达式指定非捕获组,以允许使用短划线标记
How to specify non-capturing groups for my regex to allow tags with dashes
嗯。。为了实现我的目标,我想在jQuery核心中对正则表达式匹配器进行一个小的更改:允许在名称中使用短划线匹配标签
示例:<auto-link/>
、<user-circle/>
、<something-else></something-else>
今天,jQuery标记matcher/regex被声明为rsingleTag
变量,您可以在他们的源代码中看到,但它与我需要的不匹配。所以我想出了我修改后的改变:
- 默认正则表达式:
/^<('w+)'s*'/?>(?:<'/'1>|)$/
- 用破折号修改的正则表达式:
/^<('w('w|-'w)*'s*'/?)>(?:<'/'1>|)$/
因此,我所做的更改是完全匹配的,但是,当我尝试使用rsingleTag.exec("<auto-link/>")
从中提取字符串时,预期的结果与jQuery默认regex不相似。
- 默认正则表达式:
rsingleTag.exec("<div/>")
=>["<div/>", "div"]
- 用破折号修改的正则表达式:
rsingleTag.exec("<div/>")
=>["<div/>", "div/", "v"]
我希望修改后的正则表达式结果与默认正则表达式结果相同,并允许使用短划线标记。我做错了什么,或者怎样才能纠正?
/^<('w('w|-'w)*'s*'/?)>(?:<'/'1>|)$/ - your attempt
/^<('w[-'w]*)'s*'/?>(?:<'/'1>|)$/ - your intention
相关文章:
- 我如何才能找到哪些网站使用我的jQuery插件
- 如何使用我的Jquery代码创建委托事件侦听器
- 我尝试使用我的本地js文件来获取远程IP数据,但它不起作用
- 使用我的if语句更精确
- 使用我的基于标签的平滑滚动脚本而不带“a”的解决方案
- object.create 不使用我的新值
- 我可以'不要在ExpressJS中使用我的静态JS文件
- 使用我的javascript中的所有json条目
- 无法使用我的代码(html/js/css)初始化网络摄像头
- 为什么可以't我在一个单独的字段中重复使用我的Pikaday日历
- 计算 jQuery 的 API 使用情况.如何使用我的jQuery
- 无法在 javascript 中使用我的模型数据
- 使用我的网络应用程序在Facebook上分享图像
- 如何使用我的 JavaScript 函数渲染融合图
- 如何在 Node.js 中使用我的 PHP 正则表达式
- 如何使用我的 jQuery 日期选择器脚本添加 dd-mm-yy 的日期格式
- fadeIn( ) 不使用我的 css 定位
- 无法使用我的Phonegap应用程序连接到mysql服务器
- 我如何采用两个日期选择器并使用我的开始和结束日期对数据进行排序,但 json 数据包含 5/12/2016,而角度仅排序
- JQuery Datepicker:如何使用我的 CSS 拒绝它