/ / Regex dvojitý znak v Ruby - rubín, regex

Regex dvojitý znak v Ruby - rubín, regex

Musím povoliť viac ako jedno obdobie (.) v reťazcovom vstupe. Aký je najlepší spôsob, ako to urobiť pomocou Ruby regex?

Odpoveď na pripomienky:

Chcem obmedziť zadanie len jedného obdobia na e-mailovú adresu počas registrácie e-mailu. Mám základný e-mailový regex pre e-mailové vstupy. Môj zázrak je, že ak je možné obmedziť počet (.) prostredníctvom samotného Regexu, alebo by som mal používať Ruby knižnice.

Áno, je to nováčiková otázka.

Pravidelný výraz je ako taký

/A([^@s]+)@((?:[-a-z0-9]+.)+[a-z]{2,})Z/i

Ako povoliť iba jednu periódu vo vnútri ktorejkoľvek časti?

odpovede:

2 pre odpoveď č. 1

Za predpokladu, že to znamená najviac jedno obdobie v častipred teoreticky by to bolo možné vykonať s nasledujúcim regexom (neumožňuje bod ako prvý alebo posledný znak a nevykonáva žiadnu inú validáciu):

^[^.]+(.[^.]+)?$

Vyššie uvedený regex spracováva iba časť pred@, budete musieť pridať zvyšok regexu sami. V podstate sa zhoduje so skupinou s 1 alebo viacerými neperiodickými znakmi, za ktorými nasleduje voliteľná skupina obdobia a nasleduje jedna alebo viac neperiodických znakov.

Som však zvedavý, prečo by ste chceli obmedziťregistráciu používateľom s najviac jedno obdobie na ich e-mailovej adrese ... to sa nezdá byť rozumným obmedzením, pretože je celkom realistické, aby používatelia legitímne mali viac ako jedno obdobie vo svojej adrese.