Javascript 正则表达式,用于将数字与符号隔离,并在JS中将它们合并为十进制数

Javascript 正则表达式,用于将数字与符号隔离,并在JS中将它们合并为十进制数,javascript,jquery,regex,Javascript,Jquery,Regex,我试图在字符串中隔离特定的格式组,并通过JS或jQuery和regex等字符串将其转换 #aba #abc #33-25 #02-20 #abe #abf #abg #abe #00-50 #aba #aja #255-45 对这些 33.25€ 2.20€ 0.50€ 255.45€ 1。在正则表达式级别,到目前为止,我在字符串中隔离#xx.xx组的方法是 s = "#aba #abc #33-25" s.match( /(#[W\d-]+)/ ) //[&qu

我试图在字符串中隔离特定的格式组,并通过JS或jQuery和regex等字符串将其转换

#aba #abc #33-25
#02-20 #abe #abf
#abg #abe #00-50 #aba
#aja #255-45
对这些

33.25€
2.20€
0.50€
255.45€

1。在正则表达式级别,到目前为止,我在字符串中隔离#xx.xx组的方法是

s = "#aba #abc #33-25"
s.match( /(#[W\d-]+)/ )    //["#33-25", "#33-25"]
它识别
#33-25
子字符串,但在一个数组中输出它2次,这显然是不够的

2。还有它将如何工作(JS或jQuery)到
(由@Kosh的答案解决)

  • 删除#符号
  • 将连字符(-)替换为点符号(.)
  • 当#01 xx或#0-xx转换为1.xx或0.xx时(其中x显然是十进制数,始终为2)

使用
匹配
替换

const convert=(s)=>s
.match(/#0*(0 |[1-9]+)-(\d\d)\b/g)
.map(m=>m.replace(/#0*(0 |[1-9]+)-(\d\d)/g,'1.2欧元');
console.log(转换(`aba#abc#33-25
#02-20#abe#abf
#abg#abe#00-50#aba
#aja#255-45`)
您可以使用

const text=[“#aba#abc#33-25”、“#02-20#abe#abf”、“#abg#abe#00-50#aba”、“#aja#255-45”];
text.forEach(x=>{
常数m=x.match(/#(\d+)-(\d+/);
如果(m){
log(x,'=>',`${m[1]}.${m[2]}€`);
}

});很抱歉,我的问题中遗漏了一个步骤,首先是隔离。你的回答对于我在第一部分编辑的第一个问题是完全正确的。你能先帮我隔离这些字符串吗?@Cadmos,不用担心,已更新。