The answer of @bluss is pretty well, but if u dont’t want to call the function nonunderline() every where, try:
#show link: it => {
let b = it.body.text
if b.at(-1) == "-" {
show underline: u => u.body
link(it.dest, b.slice(0,-1))}
else {
underline(it)}}
#link("https://www.a.com")[Web A]
#link("https://www.b.com")[Web B-]