2014-02-05 46 views
-2

我該如何檢測文本框中的一個url,http://和www。然後用字符串「URL」替換它(它不需要單擊就可以,只需要它是該文本),所以當複選框切換爲true時,它應該替換url。縮短/檢測URL javascript/jquery?

例子:

一些文字www.mysite.com一些文字

那麼當複選框被選中,應該得到 「轉化」 成

一些文字網址一些更多的文字

這裏是索姆E碼,我現在有: jsfiddle DEMO

HTML:

<div id="msg_txt_lenght">characters left: 38</div><form name="msg_form_name"> 
<input id="message_form" name="message" class="message_form_lim" type="text" maxlength="38" > 
    </form> 

<label><input id"short_url_id" name="short_url" type="checkbox" value="false" onclick="checkbox_url(this);">Shorten URL</label> 

的Javascript:提前

$('.message_form_lim').on('input', function (event) { 
    msg_lenght = (38 - this.value.length); 
    document.getElementById("msg_txt_lenght").innerHTML = "characters left: " + msg_lenght; 



}); 

function checkbox_url(cb) 

    { 
     if (cb.checked == true) { 
      window.alert("true"); 
     } 
     else{ 
      window.alert("false"); 
     } 

    } 

謝謝你,希望我的解釋是有道理的。

+0

那是哪裏試圖代碼來替代? –

+0

你需要一個正則表達式來匹配這樣的字符串模式,網上有很多匹配的URL。我不確定我是否理解爲什麼要替換這樣的文本,好像只是重置文本會更容易 – helion3

回答

1

標記字符串&使用正則表達式來標識每個tokes是一個URL。

代碼:

 var new_string = ''; 
     var word_array = $("#message_form").val().split(" "); 
     for (index = 0; index < word_array.length; ++index) 
     { 
       if(word_array[index].match(regex)) 
       { 
        new_string+='URL '; 
       } 
       else 
       { 
        new_string+=word_array[index]+' ';            
       } 
       console.log(new_string); 
     } 
     $("#message_form").val(new_string); 

Fiddle

+0

謝謝,我也希望如此,當我將複選框切換爲false時,它會返回帶有完整url的文本就像它在切換之前,我做了這個http://jsfiddle.net/9rZr9/8/,但我不知道爲什麼它不工作只是不明確,你知道什麼是錯的嗎? –

+0

nvm修復了它http://jsfiddle.net/9rZr9/9/ –