2015-08-21 10 views
5

piszę wyrażenie regularne (regex) przez dodanie wielu identyfikatory e-mail w polu tekstowym z następujących warunków:angularjs - Usuń początkowe i końcowe spacje z wejściowym skrzyni przy użyciu regex

  1. Wielokrotne identyfikatory e-mail muszą być oddzielone z przecinkiem ,
  2. Potrzebujesz co najmniej jednego adresu e-mailowego id
  3. W polu wejściowym nie powinno być żadnych białych znaków.

Więc stworzył ten regex:

^(([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+([,.](([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+)*$ 

testowałem go w regex101.com i jego pracy jak czar https://regex101.com/r/bU7rU8/1

Ale kiedy zintegrować go z kodem, to działa, ale kończy się niepowodzeniem na prowadzeniu i kończeniu białych znaków.

Oto link demo: http://jsfiddle.net/2G8gA/330/

+2

użytkowania 'ng-trim = "false"'. Spójrz na [to skrzypce] (http://jsfiddle.net/Ltpo2wL5/). Czy to jest to, czego potrzebujesz? –

+0

@stribizhev: Zrobiłeś mój dzień. Staram się dowiedzieć, o co chodzi z ostatnich 2 godzin. Dzięki za pomoc. Proszę opublikuj odpowiedź. Przyjmę to. :) –

Odpowiedz

9

angularjs przycina wejście domyślnie, więc trzeba użyć ng-trim="false" aby przejść początkowe i końcowe spacje do pattern regex.

Zobacz documentation:

ngTrim (opcjonalnie)

Jeśli ustawione na false kątowej nie będzie automatycznie przyciąć wejście. Ten parametr jest ignorowany dla elementów sterujących, które nigdy nie będą trymować wejścia.

(default: true)

2

Chcesz wiodącym/spacje dostępu do całego łańcucha, lub wokół każdego adresu?

Dla byłego Twój regex powinny być

/^(\s*([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+([,.](([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+\s*)*$/ 

i na ostatnim

/^(\s*([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25}\s*)+([,.](\s*([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+\s*)*$/ 
Powiązane problemy