Софтуерно Инженерство
Loading...
+ Нов въпрос
mihdimitrov avatar mihdimitrov 45 Точки

Regexpression

Здравейте, 

опитвам се да направя валидация за поле в javascript. Целта ми е вътре в полето да може да има следния формат 121212-12122 - първите 6 символа да са само числа и да не може да се въвежда друго, после да има "-", и после 5 числа нищо друго да няма. replace(/[^\d{1,6}]-\d{1,5}]/g, '') ; нещо такова правя, но не ми сработва и не разбирам защо. Успявам да измисля само replace(/[^0-9,-]/g, ''), но това ми позволява в цялото поле да пиша "-" Ако някой знае как се конкатенират няколко различни regexp, също ще ми свърши работа. Благодаря предварително.

Тагове:
0
JavaScript Fundamentals
mihdimitrov:
Получих отговор
crazy7 avatar crazy7 177 Точки

Нещо такова не ти ли върши работа: /\d{6}\-\d{5}/g или ако не трябва да са точно 6 и 5: /\d{1,6}\-\d{1,5}/g

0
26/06/2015 15:02:17
micro3x avatar micro3x 137 Точки

/[0-9]{6}\-[0-9]{5}/g <- регекса

[0-9] <- числата

{6} <- точно 6 пъти

\- <- Ескейпнът минус :)

[0-9] <- числата

{5} <- точно 5 пъти

 

Що се отнася до:

Ако някой знае как се конкатенират няколко различни regexp, също ще ми свърши работа. Благодаря предварително.

Няма такова нещо като конкатенация на Регулярни изрази. Можеш да събереш стринг от няколко стринга и на края да го направиш на регулярен израз.

Пример:

var BudeshtRegex = "";

ако трябва да започва с цифра > BudeshtRegex += "[0-9]";

ако трябва нещо си друго да следва > BudeshtRegex += "Другото нещо";

и тн. ...

а на края го създаваш  > var regex = new RegExp(BudeshtRegex);

0
26/06/2015 15:18:43
mihdimitrov avatar mihdimitrov 45 Точки

пробвах по следните начини : replace(/^[0-9]{6}\-[0-9]{5}$/g, '') ; така: replace(/[0-9]{6}\-[0-9]{5}/g, ''),  така :replace(/^[0-9]{6}\-[0-9]{5}/g, '') , но и в 3-те вариянта ми разрешава да въведа символ различен от число ..

0
micro3x avatar micro3x 137 Точки

Какво точно искаш да постигнеш?

Ако искаш докато пишеш в полето да не ти позволява да въвеждаш друго освен оказаните символи се прави едно.

Ако искаш да валидираш данните преди да ги изпратиш към сървъра се прави друго.

 

А replace  за какво го ползваш?

0
26/06/2015 15:50:51