具有可变符号的xpath。该如何做?

时间:2018-11-20 11:01:49

标签: javascript html xpath css-selectors

我有HTML代码。

<div _ngcontent-c30="" class="message__main"><p _ngcontent-c30="">Куплю</p><ul _ngcontent-c30="" class="message__conditions  list  list--inline"><!----><li _ngcontent-c30="" class="list__item ng-star-inserted"><p _ngcontent-c30="" class="list__key">Кол-во:</p><p _ngcontent-c30="" class="list__value">1 10³ м.</p></li><li _ngcontent-c30="" class="list__item"><span _ngcontent-c30="" class="point"></span></li><!----><li _ngcontent-c30="" class="list__item ng-star-inserted"><p _ngcontent-c30="" class="list__key">Цена за ед.:</p><p _ngcontent-c30="" class="list__value">1,00&nbsp;₽</p></li><li _ngcontent-c30="" class="list__item"><span _ngcontent-c30="" class="point"></span></li><li _ngcontent-c30="" class="list__item"><p _ngcontent-c30="" class="list__key">Сумма:</p><p _ngcontent-c30="" class="list__value">1,00&nbsp;₽</p></li></ul></div>

我需要检查显示的数字是否正确(带有小数部分)。

我认为两次联系定位器是错误的,希望一次是正确的。我想做类似contains(.,"^123(.|,)123$")

的事情

那么有可能吗? 如果不。用其他方法怎么做

2 个答案:

答案 0 :(得分:1)

在XPath 2.0中,您可以

matches(., "^123(.|,)123$")

在XPath 1.0中,您可以尝试

translate(., ',', '.') = "123.123"

在SO问题中,请务必说出您正在使用哪个XPath版本,因为1.0、2.0和3.1都是通用的。

答案 1 :(得分:0)

搜索号码 11,27 ind "div.message__main"

在JavaScript中:

document.querySelector("div.message__main").innerHTML.match(/11(.|,)27/);