我需要在不影响属性的情况下将数字包装在 HTML 标记中。
到目前为止,我所能得到的只是选择标签内的内容,数字和非数字字符:(
这是我正在使用的正则表达式:
/([0-9]+(?:\.[0-9]*)?)/g
我将使用 jQuery 来解析它。这是我能得到的最接近的 jsfiddle。
如何使这个正则表达式只查找 html 标签内的数字?
谢谢你的帮助。
我需要在不影响属性的情况下将数字包装在 HTML 标记中。
到目前为止,我所能得到的只是选择标签内的内容,数字和非数字字符:(
这是我正在使用的正则表达式:
/([0-9]+(?:\.[0-9]*)?)/g
我将使用 jQuery 来解析它。这是我能得到的最接近的 jsfiddle。
如何使这个正则表达式只查找 html 标签内的数字?
谢谢你的帮助。
例如,这匹配 123 <div>123</div>
:
[0-9]+(?:\.[0-9]*)|(?<=^|>)\d+(?=<|$)
此正则表达式是根据您提供的链接编辑的:http ://regexr.com/?361gc
这仅选择 html 标记中的数字。它也适用于多行文本。
(?!<[A-Z][A-Z0-9]*\b[^><]*>[^><0-9]*)([0-9]+)(?=[^><0-9]*<)
你可以在这里测试它。
但请注意,<html>
and<body>
标记将匹配您要求的模式,因此当您通过此正则表达式运行完整的 html 文档时,大多数或所有数字都将匹配。
在jsfiddle上测试您的代码我将其更改为:
$('body').each(function() {
$(this).html(function(i, v) {
return v.replace(/(?!<[A-Z][A-Z0-9]*\b[^><]*>[^><0-9]*)([0-9]+)(?=[^><0-9]*<)/gim, '<span>$1</span>');
});
});
所以现在它只在正文的元素上运行,而不是整个文档。这是否给出了预期的结果?