h20002000
h20002000

Reputation: 73

How to remove specific letters using regex in javascript

var cartstring = "27,00 - R"

How can I remove spaces and "-" and "R" using only regex (not allowed to use slice etc.)? I need to make strings cartstring1 and cartstring2 which should both be equal to "27,00", first by removing spaces and "-" and "R", and second by allowing only numbers and ",".

cartstring1 = cartstring.replace(/\s/g, "");
cartstring2 = cartstring.replace(/\D/g, "");

Please help me modify these regular expressions to have a working code. I tried to read about regex but still cannot quite get it.
Thank you very much in advance.

Upvotes: 0

Views: 64

Answers (3)

The fourth bird
The fourth bird

Reputation: 163207

You are using 2 replacements, one replacing all whitespace chars \s and the other replacing all non digits \D, but note that \D also matches \s so you could omit the first call.

Using \D will also remove the comma that you want to keep, so you can match all chars except digits or a comma using [^\d,]+ in a single replacement instead:

var cartstring = "27,00 - R";
console.log(cartstring.replace(/[^\d,]+/g, ''));

Upvotes: 0

Spectric
Spectric

Reputation: 31987

You can group the characters you want to remove:

var cartstring = "27,00 - R"
let res = cartstring.replace(/(\s|-|R)/g, "")
console.log(res)

Or alternatively, split the string by a space and get the first item:

var cartstring = "27,00 - R"
let res = cartstring.split(" ")[0]
console.log(res)

Upvotes: 1

Alan Omar
Alan Omar

Reputation: 4217

you can just capture just what you are interested in number and comma:

let re = /[\d,]+/g
let result = "27,00 - R".match(re)
console.log(result)

Upvotes: 2

Related Questions