Есть ли способ стереть первую часть этой строки? - PullRequest
0 голосов
/ 11 июля 2019

Следующий код возвращает это: $ 100,00 - $ 209,00, но мне нужно только последнее значение (без знака доллара: 209,00

Я уверен, что это возможно с регулярным выражением. Кто-то знает, как это сделатьэто?

Переменная происходит от Handlebar.

<span class="round">
   {{price<?php echo $priceKey; ?>_formatted}}
</span>

Я ожидаю преобразовать оригинал в 209.00

Я должен использовать JavaScript.

Это не обязательно регулярное выражение. Может быть что-нибудь, что решит проблему.

Спасибо

Ответы [ 3 ]

3 голосов
/ 11 июля 2019

Если ваша строка всегда имеет одинаковую природу, вы можете использовать split

let str = "$100.00 - $209.00"

let op = str.split('$').pop()

console.log(op)

Вы можете использовать матч

.*\$(\d+(?:\.\d+)?)

enter image description here

let str = "$100.00 - $209.00"

let op = str.match(/.*\$(\d+(?:\.\d+)?)/)

console.log(op[1])
1 голос
/ 11 июля 2019

Другой альтернативой (без регулярного выражения) является использование String.slice () в сочетании с String.lastIndexOf () :

let str = document.querySelector(".round").innerText;
let formatted = str.slice(str.lastIndexOf("$") + 1);
console.log(formatted);
.as-console {background-color:black !important; color:lime;}
<span class="round">
   $100.00 - $209.00
</span>
1 голос
/ 11 июля 2019

'$100.00 - $209.00'.split('$')[2] не регулярное выражение, но, возможно, простота делает его лучше.

console.log('$100.00 - $209.00'.split('$')[2])

Я использую [2] вместо [1] из-за такого поведения функции .split :

Если разделитель появляется в начале или конце строки, или в обоих, массив начинается, заканчивается, или оба начинаются и заканчиваются, соответственно, пустой строкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...