javascript - 如何将字符串中的数字(无论位数)转换为特定的字符集?
问题描述
我一直在寻找答案,但找不到答案。
我需要一个函数,它将接受字符串输入并输出相同的字符串,但字符串中的数字在输出时将变为“###”或“$$$”(取决于前面是否有美元符号号码)。
以下是一些需要发生的事情的示例:
"Final Price:" ---> "Final Price:"
"Final Price of 3 for " ---> "Final price of ### for "
"Final Price of 27 for " ---> "Final price of ### for "
"Final Price of $12.50" ---> "Final price of $$$"
"Discount of -$8.99" ---> "Discount of -$$$"
"6/" ---> "###/"
"Selling 6-Piece Set" ---> "Selling ###-piece Set"
到目前为止,我已经使用 split() 将字符串转换为基于空格的数组,然后更改其中包含数字的元素。但是,当数字没有用空格分隔(6/ 或 4 件)时,这不起作用。
此外,无论数字有多少位数,它总是会变成三个主题标签“###”或美元符号“$$$”。
有任何想法吗?
解决方案
正则表达式替换可以帮助替换包含数字的单词。就是这样:
var input = "Final Price of 3 for";
var matches = Regex.Matches(input, @"(\w*\d\w*)");
foreach (Match matchVal in matches){
//Check if number is decimal
var decimalMatches = matchVal.Value.match(/(\d+)/);
if(decimalMatches.length > 1) // means there is dot in between numbers
input.replace(matchVal.Value, "$$$");
else
input.replace(matchVal.Value, "###");
}
推荐阅读
- docker - Docker-compose 正在使用 1001:1001 USER:GROUP 安装卷
- arrays - Javascript Array问题ParseInt string inside Array
- python - Python中的百分位数计算
- botframework - Botframework V4 上的网络聊天价值交换问题
- python - 写入 CSV:“UnicodeDecodeError:‘charmap’编解码器无法解码字节 0x9d”
- bouncycastle - 使用 Bouncy Castle 从不包含证书的 PFX 文件中提取私钥
- python - 使用 defaultdict 对 pandas 中的值进行 bin 处理
- python - 在我的情况下,“str”类型对象的未知格式代码“f”是什么意思?
- jquery - Wordpress 网站 jeguery 移动响应式切换菜单不起作用
- javascript - 点击JS后汉堡菜单不消失