let str = "My Goal Amount: $25.00/$100.00.";
str = str.substring(-1,str.length-1); // remove the terminal period
let reg = /\$.+\$.+$/g;
let res = str.match(reg);
let arr = res[0].split('/');
let [num1,num2] = arr;
console.log("1st: ", num1.substring(1, num1.length));
console.log("2nd: ", num2.substring(1, num2.length));
Оказывается, это регулярное выражение проще, чем можно предположить, так как сам текст содержит знаки доллара.Можно создать регулярное выражение, которое ищет буквальный знак доллара, за которым следуют другие символы, а затем второй буквальный знак доллара, за которым следуют другие символы от конца строки, отмеченные символом доллара, за вычетом любой косой черты, которая обозначает конец строки.,
Совпадение сохраняется в массиве результатов, содержащем один элемент, строковое значение которого затем разделяется на буквенную косую черту.Результаты затем сохраняются в массиве обр.Затем значения, хранящиеся в массиве, присваиваются переменным num1 и num2 посредством деструктуризации массива.
Если вы предпочитаете более сфокусированное регулярное выражение, вы также можете кодировать следующим образом:
let s = "My Goal Amount: $25.00/$100.00.";
s = s.substring(-1, s.length - 1);
let reg = /\$\d+\.\d+.\$\d+\.\d+$/;
let replaced = s.match(reg)[0].replace(/\$/g, "");
console.log(replaced.split("/"));
Если вы пренебрегаете обрезкой строки s
конечного периода, то регулярное выражение не будет совпадать со строкой, что приведет к нулю.Это регулярное выражение задает шаблон в конце строки, который начинается со знака доллара, за которым следуют одна или несколько цифр, затем точка и одна или несколько цифр.Шаблон продолжается сопоставлением другого символа (в данном случае с косой чертой), а затем со знаком доллара, за которым следуют одна или несколько цифр, следующий за точкой и снова одна или несколько цифр.