使用正则表达式(regex)在jQuery / JavaScript中替换选定的文本

12
在下面的示例中,使用jQuery选择文本。如何通过去除其他数据来分离货币?这里尝试使用JavaScript的replace未成功:
var symbol = $("div.price > h5 > div.num").text().replace(/[\d.]*/, "");

这是一个示例HTML页面;jQuery选择器正在起作用:

<div class="price">
  <h5 class="biguns">
    <div class="num">
      €12.28
    </div>
    Lowest Price Per Night
  </h5>
</div>
3个回答

25

如果不对点号进行转义,它将匹配每个字符,你需要设置全局修饰符:

var symbol = $("div.price > h5 > div.num").text().replace(/[\d\.]+/g, "");

不过无论如何,在这里,尽情享受吧:http://www.regular-expressions.info/refquick.html - Félix Adriyel Gagnon-Grenier
因为不必要的粗鲁评论而被踩。在这种情况下,.replace()是一个Javascript方法https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace,不应与jQuery方法http://api.jquery.com/replaceAll/和http://api.jquery.com/replaceWith/混淆。 - PJ Brunet

3
var symbol = $("div.price > h5 > div.num").text().replace(/\d+\.?\d+/, "");

很遗憾,这不符合没有小数位的12。不能总是假设您会有一致的输入。 - John Strickler

0
如果货币符号始终是第一个字符且只有一个字符长,您可以轻松地使用以下代码获取它:
var symbol = $(".num").text().substr(0,1);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接