2017-08-16 1 views
0

Hallo, Ich will den regulären Ausdruck für MobilnummerRegular Expression für Mobile und beginnend mit 09 oder 04

Die Datenvalidierung erstellen sollte 10 Zahlen erfordern. Die Datenvalidierung sollten die ersten beiden Zahlen erfordern 04 oder 09. sein

kann jemand dazu helfen Sie mir, diese Arbeit für mich nicht /^09\d{8}$/

ist dies die Plunker wr meine regex comming als String https://plnkr.co/edit/Yjch7G7npkHmtKYDF5Yc?p=preview

hallo mein regulärer Ausdruck bereits mit quots comming wie kann ich entfernen, dass var regex = "/^0(9|4)d{8}$/" wie dies :(

+0

Wenn Sie keine Kontrolle über den Var-Typ des Musters haben, das Sie erhalten, aber Sie sind sicher, dass es immer so übergeben wird, können Sie 'var incoming ="/^ 0 [94] \\ d {8} $ verwenden/g ";' und dann 'var regex = neue RegExp (incoming.replace (/^\/(.*)\/ g ​​$ /," $ 1 "));'. Siehe [diese Plunkr] (https://plnrkr.co/edit/n1mva6XJYPwbHfxxl9Md?p=preview). –

+0

Hat etwas für Sie funktioniert? –

+0

hi yeah :) diese 0 (9 | 4) \\ d {8} –

Antwort

2

diese Regex für mich funktioniert:

/^0(9|4)\d{8}$/ 

Erklärt:

^ - means start of line 
0 - leading zero is mandatory 
(9|4) - this is saying that the zero has to be followed by either a 9 or a 4 
\d{8} - next, there have to be 8 digits 
$ - means end of line 
+0

hi @ishegg danke, kannst du bitte erklären, diese Arbeit :) –

+0

Sorry, ich habe die Antwort aktualisiert. Lass es mich wissen, wenn du noch mehr Zweifel hast. Alternativ können Sie die Regex in regex101.com veröffentlichen und Sie erhalten detaillierte Erklärungen, wie es funktioniert. Sie können die Regex auch direkt dort testen. Es ist eine großartige Website, um Sie zu testen und zu lernen! – ishegg

+0

hi @ishegg es funktioniert nicht für mich :( –

0

Ich hoffe, das Ihnen hilft.

var regex = /^0(9|4)\d{8}$/ 
alert(regex.test('0412345678')); //true 
alert(regex.test('0912345678')); //true 
alert(regex.test('0512345678')); //false 

var regex = new RegExp(/^0(9|4)\d{8}$/); 
alert(regex.test('0412345678')); //true 
alert(regex.test('0912345678')); //true 
alert(regex.test('0512345678')); //false 
+0

hi @PraveenKumar das ist der Plünder https://plnrkr.co/edit/Yjch7G7npkHmtKYDF5YC?p=preview, wo mein regulärer Ausdruck kommt als String wegen seiner nicht funktioniert –

+0

ändern var regex = new RegExp ("/^0 (9 | 4) \ d {8} $ /"); zu var regex = new RegExp (/^0 (9 | 4) \ d {8} $ /); – PraveenKumar

+0

Hallo ich änderte auch immer noch als einige zusätzliche Zeichen zurücktreten https://stackoverflow.com/questions/45706282/regular-expression-is-not-working-due-to-the-pattern-is-string –

1

Diese Regex ist ziemlich einfach und es funktioniert:

/(09|04)\d{8}/g

Erklärt:

  • (09|04) sagt der Gruppe entsprechen (09 | 04) (eine Gruppe ist im Wesentlichen eine Folge übereinstimmen), wobei die zu vergleichende Sequenz 09 OR ist (das | Symbol) 04.
  • Als nächstes sagt \d{8} sagt genau 8 Ziffern nach der (09|04) Gruppe.
  • Schließlich setzt g das globale Flag (ermöglicht mehr als eine Übereinstimmung).

Ich hoffe, das hat geholfen!

+0

hi @ Arthur-R Das ist der Plünderer https://plnkr.co/edit/Yjch7G7npkHmtKYDF5Yc?p=preview, wo mein regulärer Ausdruck als String kommt, weil er nicht funktioniert. –

+0

@Gayathri Mohan Hey, es sieht so aus, dass du es benutzt hast 'var regex2 = new RegExp ("/(09 | 04) \ d {8}/g ");', sollten Sie keine regulären Ausdrücke in Anführungszeichen setzen, wenn Sie sie in 'var regex2 = new RegExp (/ (09 | 04) \ d {8}/g); 'Ich glaube, es sollte wie beabsichtigt funktionieren. –

+0

hi @arthur_R meine regulra expression ist string, wenn ich versuche, ein zusätzliches Zeichen zu konvertieren, bitte überprüfen Sie dies in der Konsole regex = "/^0 (9 | 4) d {8} $ /" new RegExp (Regex); –