2017-06-01 8 views
0

Ich habe Regex, die href='javascript:...' oder href="javascript:..." entspricht, aber ich möchte auch eine href=javascript:... ohne Anführungszeichen übereinstimmen.Passende Regex href = Javascript

Wie kann ich es tun?

Meine regex: /\bhref\s*=[^"']*(?:"([^"]*)"|'([^']*)')/gi

Strings, die ich passen wollen:

<a href='javascript:alert(1)' sometags>click me</a> 
<a href="javascript:alert(1)" sometags>click me</a> 
<a href=javascript:alert(1) sometags>click me</a> 

Probe Code:

while((match = reg.exec(s)) !== null) { 
    // In each cases I want to get javascript:alert(1) in match 
} 
+0

Machen Sie das Zitat optional mit '"? ' – Barmar

+0

... oder sie entfernen' \ bhref \ s * = \ S * ' – revo

Antwort

0

einen anderen Fall zu Ihrer Alternative hinzufügen. Wenn es kein Zitat gibt, stimmt es bis zum nächsten Leerzeichen oder > überein.

/\bhref\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s>]*))/gi 

DEMO