javascript文本中的模式匹配
我有一个里面有%text%图案的文本。 我如何在javascript中获得这些模式,将它们包装成跨度并改变颜色 谢谢 使用javascript文本中的模式匹配,javascript,regex,Javascript,Regex,我有一个里面有%text%图案的文本。 我如何在javascript中获得这些模式,将它们包装成跨度并改变颜色 谢谢 使用 如果%s之间的模式始终是纯文本(不包括空格等),则可以执行以下操作: text = text.replace(/%\w*%/g, function (txt) { return '<span style="color: red">' + txt.substring(1, txt.length-1) + '</span>'; }); text
如果
%
s之间的模式始终是纯文本(不包括空格等),则可以执行以下操作:
text = text.replace(/%\w*%/g, function (txt) {
return '<span style="color: red">' + txt.substring(1, txt.length-1) + '</span>';
});
text=text.replace(/%\w*%/g,函数(txt){
返回“”+txt.substring(1,txt.length-1)+“”;
});
虽然MikeM的匹配模式远远领先于我,但我留下这个答案来说明,根据匹配情况,您还可以如何使用函数来操作匹配的字符串,甚至完成一些其他工作。var str='一些带有%text%等模式的文本';
var str = 'Some text with patterns like %text% inside.';
str = str.replace( /%([^%]+)%/g, '<span style="color: blue">$1</span>' );
// Some text with patterns like <span style="color: blue">text</span> inside.
str=str.replace(/%([^%]+)%/g,$1');
//有些文本具有类似于内部文本的模式。
这是不清楚的。你能比像%text%这样的更具体吗?@crush,它可能还包含像%text2%
这样的数字。这有帮助吗?字符串中%
的意义是什么?这是字符串的一部分,还是通配符?你是说你想让%
包围的任何东西都匹配吗?@gbtimmon:你怎么知道它可能有数字?@Mathletics:要么我的讽刺检测器坏了,要么不是很好的讽刺>>我想他想做的是用%
作为“标记”分隔符。例如,在字符串中:Hi,%Jack%。欢迎访问该网站。
,它将用杰克
取代%Jack%
。您的方法是正确的,它只需要包括匹配%
,我相信。我的坏消息是,我认为它是一个类似于SQL的通配符。MikeM的想法是正确的。也可以轻松添加对数字的支持。我认为最主要的是不允许有空间。否则:Hello,%Jack%what is%your profession%?
可能匹配:Jack
,what is
,以及your profession
。当您可以使用捕获组时,为什么要使用.substring()
<代码>文本。替换(/%(\w*)%/gi,$1')
另外,\w
包括数字。MDN:“以下属性已弃用。这不会影响它们在替换字符串中的使用:”。我明白了。。。也学到了一些东西,MikeM的模式似乎找到了任何东西,+1代表MikeM:)
var str = 'Some text with patterns like %text% inside.';
str = str.replace( /%([^%]+)%/g, '<span style="color: blue">$1</span>' );
// Some text with patterns like <span style="color: blue">text</span> inside.