正则表达式从段落中获取整数和十进制数

时间:2013-06-11 13:54:47

标签: jquery regex decimal paragraph digits

我想从段落中获取整数和十进制数。我正在使用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;不匹配的例子:

  1. 已成为前三名<3 is matched>国家
  2. 的主导地位
  3. 印度在2012年全球住房指数中排名第3 <3 is matched><2012. is not matched>
  4. *经济与房地产,2012年10月,莱坊。 <2012. is matched>
  5. 印度的范围为18.6% - 29%({1}}
  6. 请帮助我,我想匹配所有这些情况!。

    提前致谢

2 个答案:

答案 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,如果这就是你想要的。