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