2016-08-31 1 views
-1

Ich gehe jetzt für ein paar Tage auf Nüsse. Ich habe viele zuvor beantwortete Fragen in der Nähe dieses Themas gelesen und versucht, ich habe mit allen Arten von Ausdrücken auf regexr.com (sehr ehrfürchtige Seite BTW) gevögelt, aber ich kann nicht für das Leben von mir herausfinden.verschiedene Regex-Ausdrücke, aber eigentlich Newline verbieten

Ich möchte folgendes in JavaScript/Jquery tun (dies hat mit contenteditable = "true" -Elementen zu tun, wo ich Benutzereingaben einschränken möchte). Einige Elemente sind für Texteingabe ohne Leerzeichen und erlaubte Zahlen (abc1_d-ef), einige für freien Text (abc. D2ef, gh6i? ​​J8kl: mno!), Einige für ganze Zahlen (123), einige für Dezimalzahlen (1,2/1.2). ABER Ich möchte immer verbieten ein Zeilenumbruch Zeichen oder Registerkarte (\ n \ r \ t \ f).

So:

var pattern = new RegExp(.........); 
var text = $("#my-id").html(); 

var test = pattern.test(text); 
// test should be true for correct text/integer/decimal 
// but should be false as soon as text contains a newline, tab etc. 

Also im Grunde suche ich nach 4 verschiedenen Ausdrücke:

  • Buchstaben, Zahlen, Unterstrich, Bindestrich
  • Buchstaben, Zahlen, Leerzeichen, Sonderzeichen und solchen
  • Zahlen 0-9
  • Zahlen, Komma und Punkt
  • aber keiner von ihnen mit Newline usw.

Ich hoffe, ich konnte mich klar.

+0

Warum auf der Erde bekommt meine Frage in der ersten Minute mehrere downvotes? Ist etwas nicht in Ordnung? –

+0

Meiner Meinung nach nicht, upvoted. – Jan

+1

Kommt Ihre Verwirrung von Ihnen, indem Sie Ihr Muster nicht verankern? '/^\ d + $ /' entspricht beispielsweise einer ganzen Zahl (und nur einer ganzen Zahl). – Phylogenesis

Antwort

1

Für alle Ihre Anforderungen können Sie verwenden:

^[-,.\w ]+$ 

a demo on regex101.com See.

+0

Danke! Das funktioniert gut für meine Textfelder. /^ \ d + $/und^[\ d, \.] + $ Machen den Job für Integer und Floats. –