匹配两个html自定义标记之间的文本,但不匹配其他自定义标记
match text between two html custom tags but not other custom tags
我有如下内容;-
<--customMarker>Test1<--/customMarker>
<--customMarker key='myKEY'>Test2<--/customMarker>
<--customMarker>Test3 <--customInnerMarker>Test4<--/customInnerMarker> <--/customMarker>
我需要能够替换customMarker标记之间的文本,我尝试了以下操作;-
str.replace(/<--customMarker>(.*?)<--'/customMarker>/g, 'item Replaced')
这还可以。我也想忽略自定义的内部标签,不匹配或用文本替换它们。
此外,我还需要一个单独的表达式来从带有Text2的标记中提取属性key='myKEY'的值。
非常感谢
编辑事实上,我试图在评论标签之间找到东西,但评论标签没有正确显示,所以我不得不删除"!"。有一种特殊情况需要注释标签。。。无论如何,如果有人知道足够的regex来提供帮助,那就太好了。感谢u.
最后,我做了如下(以防其他人需要。享受吧!!但请注意:关于城镇,使用带有html标签的regex并不理想,所以请自己研究并下定决心。对我来说,必须这样做,主要是因为我想这样做,但也因为它简化了本例中的工作);-
var retVal = str.replace(/<--customMarker>(.*?)<--'/customMarker>/g, function(token, match){
//question 1: I would like to also ignore custom inner tags and not match or replace them with text.
//answer:
var replacePattern = /<--customInnerMarker*?(.*?)<--'/customInnerMarker-->/g;
//remove inner tags from match
match = $.trim(match.replace(replacePattern, ''));
//replace and return what is left with a required value
return token.replace(match, objParams[match]);
//question 2: Also I need a separate expression to extract the value of the attribute key='myKEY' from the tag with Text2.
//answer
var attrPattern = /'w+'s*='s*".*?"/g;
attrMatches = token.match(attrPattern);//returns a list of attributes as name/value pairs in an array
})
您不能使用<customMarker>
吗?然后您可以使用getElementsByTagName('customMarker')
并从中获取内部文本和子元素。
正则表达式只匹配一个项。一旦你说了match,那就取决于你如何使用它。这是大多数人使用正则表达式时遇到的问题的一部分,他们会尝试将这三个不同的步骤结合起来。正则表达式匹配只是第一步。
使用一个正则表达式将无法实现您所要求的内容。如果你想使用正则表达式,你需要一个迷你状态机。也就是说,一个围绕匹配的逻辑包装器,使其在每个逻辑部分中移动。
我建议您在标准api中查找预构建的解析html的引擎,而不是滚动自己的引擎。如果您确实需要这样做,请阅读flex手册,以基本了解正则表达式的工作方式,以及使用它们构建的状态机。最好的例子是关于匹配多行c注释的部分。
- 防止自定义文本出现在页面上的所有高图表上,←使用 {events:{load:function(){var.
- Highcharts自定义文本从右向左导出
- 谷歌可视化树图-如何创建自定义文本
- 动态自定义文本堆栈标签Highcharts
- 无法编辑Ext图表中的自定义文本项
- 使用喜欢按钮在Facebook上传输自定义文本
- 如何在 sugarcrm 中的自定义下拉字段中更改值时填充自定义文本区域
- 使用 JS 或 jQuery 解析自定义文本标记
- 需要有关自定义文本区域最大长度功能的建议
- 在 JS 中随机生成带有 url 的自定义文本
- 我每隔几个小时使用 JavaScript 的自定义文本不起作用
- 使用Shopify代码操作自定义文本框时出现问题
- 使用javascript和jquery向inpt字段添加自定义文本
- 使用fabric.js和HTML5在图像画布上编写自定义文本
- 所有id以自定义文本开头的按钮上的JQuery单击事件
- Javascript:确认确定取消按钮上的自定义文本
- 在剑道装载指示器上显示自定义文本
- jQuery日期选择器中的自定义文本
- 关注引导浮动模态表单上自定义文本之后的文本区域
- 在任务栏浏览器选项卡上显示自定义文本