我想从段落中获取整数和十进制数。我正在使用jQuery和正则表达式。这是我的代码:
jQuery("#Content_Text p, #Content_Text td").html(function (index, value) {
value = value.replace(/(\s[1-9]\d*(\.\d+)?(\s,\.,\,,\%)?)/, "<em style=\"color:#FF6600; font-size:12px; font-style: normal;\">$1</em>");
return value;
});
匹配&amp;不匹配的例子:
<3 is matched>
国家<3 is matched>
。<2012. is not matched>
<2012. is matched>
请帮助我,我想匹配所有这些情况!。
提前致谢
答案 0 :(得分:2)
我认为您应该使用类字符而不是(\s,\.,\,,\%)
[\s.,%]
答案 1 :(得分:1)
使用正则表达式上的/ g标志匹配的不仅仅是第一次出现。另外,这部分正则表达式有点奇怪:
(\s,\.,\,,\%)?
我怀疑你实际上并不需要这些。你无论如何都把它作为选择,所以没关系。此外,开头还有一个冗余的数字匹配。试试这个:
value.replace(/\s(\d+(\.\d+)?)/g, "<em style=\"color:#FF6600; font-size:12px; font-style: normal;\">$1</em>")
请注意,您需要在号码前面留一个空格。这在句子的开头不匹配。尝试用单词边界替换它,\ b,如果这就是你想要的。