2017-02-21 4 views
-4

Ich hatte gehofft, jemand könnte mir helfen, einen regulären Ausdruck zu finden, den ich für eine Formulareingabe benötige. Hier ist, was ich kann und kann nicht akzeptieren:Regulärer Ausdruck für keine Apostrophe oder Ampersands

  • Nein Apostroph
  • Nein Ampersand
  • Kein Blindwert
  • Alles andere ist faires Spiel so weit ich weiß,

BEARBEITEN:

checkRegexp func :

function checkRegexp(o, regexp, n) { 
     if (!(regexp.test(o.val()))) { 
     o.addClass("ui-state-error"); 
     updateTips(n); 
     return false; 
     } else { 
     return true; 
     } 
    } 
+2

teilen Ihre Forschung jeder hilft. Sagen Sie uns, was Sie versucht haben und warum es nicht Ihren Bedürfnissen entsprach. Dies zeigt, dass Sie sich die Zeit genommen haben, sich selbst zu helfen, es rettet uns davor, offensichtliche Antworten zu wiederholen, und vor allem hilft es Ihnen, eine spezifischere und relevantere Antwort zu erhalten! Siehe auch: [ask] –

+1

Es ist wahrscheinlich eine gute Idee zu fragen, was der Grund dafür ist, diese Werte nicht zu akzeptieren. Aus dieser einfachen Anfrage klingt es wie ein sehr schlechter Versuch, Eingaben zu filtern, um Angriffe zu vermeiden. Vertrauen Sie mir, wenn ich sage, dass, wenn das Ziel ist, sicher zu sein, dies nicht der richtige Ort ist, um damit anzufangen. – Simba

Antwort

3

können Sie dieses verwenden: /^[^'&]+$/

var test = [ 
 
    "&test", 
 
    "'aaa", 
 
    "WHIte Space", 
 
    "RegexIsAwesome", 
 
    "   ", 
 
]; 
 

 
test.forEach(function(element) { 
 
    console.log(element + " => " + /^[^'&]+$/.test(element.trim())); 
 
});

+0

Ich denke, Leerzeichen sind erlaubt! Er sagte keine leeren Werte, keine Leerzeichen! –

+0

Ja, das ist richtig @ibrahimmahrir der "WHIte Space" sollte wahr werden – Rataiczak24

+0

@ibrahimmahrir gut entdeckt, korrigierte ich –

2

Gefällt mir?

/^[^'&]+$/ 

Versuchen Sie und lernen Regex um regexr.com.

+0

Beide Antworten funktionieren ... auch, etwas, an das ich gerade gedacht habe .... gibt es einen Weg, so dass, wenn Sie nur einen leeren Bereich und keine tatsächlichen Zeichen eingeben würden, es false zurückgeben würde? – Rataiczak24

+0

'/^[^ '&] * [^' & \ s] [^ '&] * $ /' – Siphalor