2012-04-12 20 views
1

Kann jemand erklären, was dieses Stück Code tut. Für was ist die Testfunktion?Was macht diese Funktion? Und was ist die seltsame Syntax?

temp = "blah" 
if (/from_url=$/.test(temp)) { 
    //do something 
} 

test : function(s, p) { 
    s = s.nodeType == 1 ? s.value : s; 

    return s == '' || new RegExp(p).test(s); 
} 

Auch im Ausgangszustand, was die Syntax funktioniert, wenn (/ from_url = $ /) tun?

+0

das ist nicht jQuery - sein einfaches JavaScript - aktualisierte Tags – ManseUK

+0

Ich denke, er hat es aus der jQuery-Quelle kopiert. Zumindest die perverse Menge an Leerzeichen und die Tatsache, dass der zweite Block scheinbar von einem Objektliteral kopiert wird, sehen wirklich wie die jQuery-Quelle aus. – ThiefMaster

+0

@ThiefMaster ahh ok - ich werde das jQuery-Tag zurück ... ta – ManseUK

Antwort

3

s = s.nodeType == 1 ? s.value : s; wenn s.nodeType 1 dann ist s verwenden .value, ansonsten s verwenden.

return s == '' || new RegExp(p).test(s); geben Sie s zurück, wenn es eine leere Zeichenfolge ist, andernfalls testen Sie, ob s im regulären Ausdruck p steht.

if(/from_url=$/) ist ein regulärer Ausdruck, der nach from_url= sucht, aber nur, wenn es ganz am Ende ist.

0
/from_url=$/ 

ist ein regulärer Ausdruck Literal in JavaScript. Sie können es mit

new RegExp('from_url=$') 

Diese spezifische regulären Ausdruck überprüft ersetzen, wenn die Zeichenfolge mit „from_url=“ string endet.

+1

Wenn Sie 'RegExp()' verwenden, sollten Sie die Schrägstriche nicht einschließen ... – ThiefMaster

+0

@ThiefMaster: Sie haben Recht, sehen Sie aktualisierte Antwort. – Tadeck

1
/from_url=$/ 

ist ein regulärer Ausdruck , die die Temperatur übersetzen sollte zu überprüfen und finden, wenn es hat ‚from_url =‘ diesen Text am Ende des Strings