javascript - 用于正则表达式查找价格和检测货币的 JavaScript 函数
问题描述
我想创建一个 JavaScript 函数,它使用正则表达式从输入字符串中查找价格并检测价格的货币。
我要的格式是:
function handleCurrency (string) {
// ...
return {price: ..., type: ...}
}
例如,如果输入字符串是“test $105.62 (29,867.80 bits) (29,897.90 bits) (29,827.14 bits) test”,则返回的对象将是:
{price: 105.62, type: '$'}
首先,该函数应该支持欧元、美元和英镑。它还需要支持以下货币格式:
- 100.00 美元
- (28,278.54 位)(28,307.04 位)$ 100.00
- 100.00 美元(28,278.54 位)(28,307.04 位)美元
- 100.00 美元
- 100.00 美元
- 100.00 $
- 等等
所有这些都将被检测为:
{price: 100, type: 'USD'}
提前致谢!
编辑:我写了解决我的问题的函数。感谢所有的帮助!
function handleCurrency (string) {
let filter = input
filter = filter.replace(/USD/g,'$')
filter = filter.replace(/EUR/g,'€')
filter = filter.replace(/GBD/g,'£')
filter = filter.replace(/(?<!\d)\.(?!\d)/g, '')
filter = filter.replace(/[^\$\€\£\d\.]/g,'')
let price = filter
price = price.replace(/[^\d\.]/g,'')
price *= 1
let type = filter
type = type.replace(/[^\$\€\£]/g,'')
type = type[0]
return {price: price, type: type}
}
解决方案
Stack Overflow 不是来为您编写代码的。如果您遇到问题并需要帮助,Stack Overflow 就在这里。举个例子,试着写一个这样的正则表达式,说明它在哪些情况下有效,在哪些情况下无效。如果这不能帮助您解决问题,请提出问题。
作为入门资源,我会向您介绍https://regex101.com/,它在解释您的正则表达式到底匹配什么以及您可以在哪里尝试不同的输入方面做得非常出色。您还可以保存包括输入在内的正则表达式,然后在遇到问题时将其附加到此处的问题中。
由于你是新手,我做了一个简单的例子,它涵盖了所有给定的例子:https ://regex101.com/r/cP5f94/1你仍然需要用它们构建一个 Javascript 对象并映射$
到USD
,添加其他案例等。但它应该让你开始
祝你好运!
推荐阅读
- cassandra - Elassandra 与现有 Cassandra 实例的集成
- php - SQLSTATE[HY000] [2002] 权限被拒绝 Laravel PDO 驱动程序(凭证通过工匠迁移工作)
- php - 在 Laravel 中如何将参数传递给 BelongsToMany
- c# - SQLITE 连接未出现在 VS2017 中
- typescript - 为所有可能的对象属性类型定义一个类型
- redmine - 无法通过电子邮件更新问题
- sql - 使用触发器作为跨 2 个不同服务器的外键
- mysql - 是否可以避免乘法效应?
- html - 我可以使用 node.js 将部分 HTML 和链接的 CSS 捆绑到一个文件中吗
- java - 将多个字符串分配给单个变量