Я хочу получить regexp
, чтобы разрешить следующие форматы цен ниже (это строка в форме)
ALLOW
- (любая цена без десятичных знаков. Может быть
[0-9]
1 или более раз) - , # (любая цена с одним десятичным знаком)
- , ## (любаяцена с двумя десятичными знаками)
НЕ РАЗРЕШАТЬ
- Что-нибудь еще ... Например:
- 5555 ... (3 decmails или более)
- Независимо от строки, содержащей более 1 запятой
- Независимо от строки, содержащей любой символ, это не DIGIT
- ETC
Пока я получил это:
/^[0-9]+(,[0-9][0-9]?)?$/
Кажется, работает.Но действительно ли он делает то, что я хочу?
const priceRegex = /^[0-9]+(,[0-9][0-9]?)?$/;
const span1 = document.getElementById('span1');
const span2 = document.getElementById('span2');
const span3 = document.getElementById('span3');
const span4 = document.getElementById('span4');
const span5 = document.getElementById('span5');
const span6 = document.getElementById('span6');
const span7 = document.getElementById('span7');
const span8 = document.getElementById('span8');
const span9 = document.getElementById('span9');
const span10 = document.getElementById('span10');
const span11 = document.getElementById('span11');
const span12 = document.getElementById('span12');
const span13 = document.getElementById('span13');
span1.innerHTML = priceRegex.test('5') ? ' IS VALID' : ' IS NOT VALID';
span2.innerHTML = priceRegex.test('5,5') ? ' IS VALID' : ' IS NOT VALID';
span3.innerHTML = priceRegex.test('5,55') ? ' IS VALID' : ' IS NOT VALID';
span4.innerHTML = priceRegex.test('5,') ? ' IS VALID' : ' IS NOT VALID';
span5.innerHTML = priceRegex.test('5,555') ? ' IS VALID' : ' IS NOT VALID';
span6.innerHTML = priceRegex.test('5,5555') ? ' IS VALID' : ' IS NOT VALID';
span7.innerHTML = priceRegex.test('a') ? ' IS VALID' : ' IS NOT VALID';
span8.innerHTML = priceRegex.test('5a') ? ' IS VALID' : ' IS NOT VALID';
span9.innerHTML = priceRegex.test('a5') ? ' IS VALID' : ' IS NOT VALID';
span10.innerHTML = priceRegex.test('a,5') ? ' IS VALID' : ' IS NOT VALID';
span11.innerHTML = priceRegex.test('5,a') ? ' IS VALID' : ' IS NOT VALID';
span12.innerHTML = priceRegex.test('a5,5') ? ' IS VALID' : ' IS NOT VALID';
span13.innerHTML = priceRegex.test('5a,5') ? ' IS VALID' : ' IS NOT VALID';
div {
color: black;
}
span {
color: blue;
}
.notValid {
color: red;
}
<div>5<span id="span1"></span><div>
<div>5,5<span id="span2"></span></div>
<div>5,55<span id="span3"></span></div>
<br/>
<div>5,<span id="span4" class="notValid"></span><div>
<div>5,555<span id="span5" class="notValid"></span></div>
<div>5,5555<span id="span6" class="notValid"></span></div>
<div>a<span id="span7" class="notValid"></span></div>
<div>5a<span id="span8" class="notValid"></span></div>
<div>a5<span id="span9" class="notValid"></span></div>
<div>a,5<span id="span10" class="notValid"></span></div>
<div>5,a<span id="span11" class="notValid"></span></div>
<div>a5,5<span id="span12" class="notValid"></span></div>
<div>5a,5<span id="span13" class="notValid"></span></div>