2012-02-06 22 views
0

私は特定の接頭辞で始まる単語に一致しています。複数のregExの一致

この正規表現はうまくいきますが、1つの試合で複数の語を適用する際に問題があります。

  • 一致する接頭辞 '再':/(re|http)\S+/g;

しかし:/re\S+/g;

は、私はそれが

  • 一致する接頭辞 '再' と 'HTTP' で働くだろうと思いました後者は第2項からのマッチだけを返します。

    function replacePrefix(input){ 
         var re = /(#)\S+/g;   
         var specials = []; 
         var match; 
         while(match = re.exec(input)){ 
          $('#text').html(input.replace(specials[0], "<span class='special'>"+specials[0]+"</span>")); 
         } 
        } 
    
+0

はあなたが一致する、または一致していたいもの 'input'があるかもしれないし、何の例を提供することができます:

はここで完全なコードです。 –

+0

例えば「これはhttp://www.coolurl.comのような本当に素晴らしいURLの文章」 「本当に」と「http://www.coolurl.com」が返されます – MALK

+0

私はちょっと混乱していますあなたのwhileループのコードで何を達成しようとしているのですか?マッチを含む '$( '#text')'に新しいスパン要素を追加しますか? –

答えて

1
function replacePrefix(input){ 
    var re = /\b(?:re|http)\S+/g;   
    var specials = []; 
    var match; 
    while(match = re.exec(input)){ 
     console.log(match); 
    } 
} 
replacePrefix("This is a sentence with really great urls in it like http://coolurl.com";); 

["really"] 
["http://coolurl.com"] 
+0

あなたの助けてくれてありがとう、私の問題はいくつかの不正な文字だった。改良された正規表現をありがとう! – MALK