Javascript 设置正确的正则表达式

Javascript 设置正确的正则表达式,javascript,regex,Javascript,Regex,我的正则表达式有问题,我只需要从这个字符串中引用产品的价格,我使用了这个正则表达式,但它对我没有帮助,有人能修复它吗?多谢各位 我只需要69个单词 鲁温4XL瑞士法郎69 我的尝试: var re = /[0-9]{2}/; 我从这个字段中获取(下图) 除了这一个,它在所有情况下都对我有效 到目前为止,我在函数中使用了这个正则表达式,但现在我只读取第一个数字,所以我必须替换它,否则价格和数字总是相同的 function calculateSumWithInput(e) { var re

我的正则表达式有问题,我只需要从这个字符串中引用产品的价格,我使用了这个正则表达式,但它对我没有帮助,有人能修复它吗?多谢各位

我只需要69个单词 鲁温4XL瑞士法郎69

我的尝试:

var re = /[0-9]{2}/;
我从这个字段中获取(下图)

除了这一个,它在所有情况下都对我有效

到目前为止,我在函数中使用了这个正则表达式,但现在我只读取第一个数字,所以我必须替换它,否则价格和数字总是相同的

function calculateSumWithInput(e) {
  var re = /\d+/;
  var value = re.exec(e.target.value);
  if (value && !isNaN(value) && Number(value) === parseInt(value, 10)) {
    sum = parseInt(value, 10);
    finalInput.value =  "CHF " + sum + ".–";
  }
}

谢谢大家的帮助

根据您的示例判断,我建议您使用以下正则表达式:

 /.*(CHF \d+).*/
您应该测试它,然后访问数组的第二个元素,该元素将是match的输出。假设输入为可变文本,且输出必须保存为可变价格:

if(/.*(CHF \d+).*/.test(text)) price = text.match(/.*(CHF \d+).*/)[1];

您必须匹配货币代码,货币代码总是以三个大写字符(
[A-Z]{3}
)开头

后跟至少一个描述整数部分的数字(
\d+

后跟句点(
\.
),我们必须转义句点,因为它在正则表达式中是一个特殊字符)

以小数部分(
\d+
)或破折号
-
结尾

这就给我们留下了:

/[A-Z]{3} \d+\.(\d+|-)/
在任何情况下,在创建正则表达式时,必须提供一些有关要匹配的确切模式的详细信息。

提取数字
。尝试:

\d+(?=\.\–)

试试
/\b[A-Z]{3}\d+\b/
,然后
/\b[A-Z]{3}\s?\d+\b/
<代码>/\b[A-Z]{3}\s?\d{2}\b/?根据您的示例,我会说/*(CHF\d+。*/对不起,我写了一个错误,我只需要引用69个,最后一个数字然后,尝试:
\d+(?=\.\-)
对不起,我写了一个错误,我只需要引用69个,最后一个数字