Валюта / Проценты Регулярное выражение - PullRequest
2 голосов
/ 12 сентября 2011

Я должен сопоставить значения типа

€ 6.483,00

ИЛИ значения, такие как

18,50%  

ИЛИ, опять же,

+65,86 %

в функции Javascript, которую ясоставлен как:

function(s) {
  return /^[0-9]?[0-9,\.]*$/.test(s);
}

но, очевидно, он не работает ... как его следует изменить?

Ответы [ 2 ]

3 голосов
/ 12 сентября 2011
^(?:€|\+)?\s*\d+(?:\.?\d{3})*(?:,\d+)?\s*%?\s*$

См. Здесь здесь в Regexr

Начало строки, необязательный € или +, затем необязательный пробел, затем в списке должна быть одна цифра, за которой следуетнеобязательная точка и три цифры, затем необязательная дробь, необязательный пробел, необязательный% более необязательный пробел и затем конец строки,

2 голосов
/ 12 сентября 2011
var sample = [
    "€ 6.483,00",
    "18,50%",
    "+65,86 %"
]
for(var i = 0; i < sample.length; i++) {
    var input = sample[i];
    var regex = /^(\u20ac ?)?\+?\d+(\.\d+)?(\,\d+)?( ?%)?$/
    console.log(input + "\t" + regex.test(input));
}

Если есть случаи, которые не совпадают / не должны совпадать, дайте мне знать.

...