2014-10-30 66 views
1

對於輸入到文本框中的每個單詞,我希望在除「is」和「was」之類的單詞之外的每個單詞前添加「 - 」。爲每個單詞添加「 - 」 - javascript

$('#WhatTextBox').keyup(function() { 
     var word_check = $('#WhatTextBox').val(); 
     if(!word_check.match('is') OR !word_check.match(' ')) { 

      $('#special'("-"+$('#WhatTextBox').val()); 

} 

我在這裏錯過了什麼?

+0

在if語句也增加一個條件是否一個「 - 」存在,如果不這樣做,你將追加字符在鍵上 – 2014-10-30 06:21:12

+0

這將把完整的價值爲word_check。而你想在每個單詞的價值之前添加連字符。 你確定你不想分割基於分隔符的值嗎? – D3V 2014-10-30 06:22:55

+2

'$('#WhatTextBox').val()'是編寫'this.value'的一種非常低效的方法。 – RobG 2014-10-30 06:23:29

回答

1

試試這個: 的Javascript:

$(document).ready(function(){ 
     $('#WhatTextBox').keyup(function() { 
      var text = $(this).val(); 
      text = text.split(" "); 
      var newtext = ""; 
      for(var i=0;i<text.length;i++){ 
       if (text[i] == 'is' || text[i] == 'was'){ 
        newtext = newtext+" "+text[i]; 
       }else{ 
        newtext = newtext+"-"+text[i]; 
       } 
      } 
      $("#newtext").text(newtext); 
     });    
    }); 

HTML:

<textarea id='WhatTextBox'></textarea> 
<div id='newtext'></div> 

或者,如果你有一些特殊的話,你可以使用這個JavaScript:

$(document).ready(function(){ 
     var specialwords = ['is','was','am','are'];//special words here 
     $('#WhatTextBox').keyup(function() { 
      var text = $(this).val(); 
      text = text.split(" "); 
      var newtext = ""; 
      for(var i=0;i<text.length;i++){ 
       if (specialwords.indexOf(text[i])!=-1){ 
        newtext = newtext+" "+text[i]; 
       }else{ 
        newtext = newtext+"-"+text[i]; 
       } 
      } 
      $("#newtext").text(newtext); 
     });    
    }); 
+0

不起作用 - http://jsfiddle.net/c4dh5xbh/ – X10nD 2014-10-30 06:45:35

+0

你沒有加載jquery。當然它不會工作 – 2014-10-30 06:51:57

+0

我已經添加了答案 – 2014-10-30 06:54:46

0

爲什麼你不使用替換方法?

$('#WhatTextBox').keyup(function() { 
     $('#WhatTextBox').val($('#WhatTextBox').val().replace(' ', '-').replace('-is', ' Is').replace('-was', ' was')); 
} 
+0

這很容易,我該如何檢查特定單詞是'是'還是'和'? – X10nD 2014-10-30 06:28:17

+0

所以沒有連字符'發佈'? – RobG 2014-10-30 07:04:42

0

我知道它已經是一個了發了瘋,但我想明白爲什麼不。有人可能會喜歡這種其他方法。

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> 
<textarea id="WhatTextBox"> 
</textarea> 
<script> 

$('#WhatTextBox').keyup(function() { 
    var val = ' '+this.value; 
    var exempt = ['is', 'was']; 
    var value = val.replace(/(\s)([\S]+)/g, function(m, space, word){ 

     var tmp = word.slice(1, word.length); 
     if(exempt.indexOf(tmp) !== -1){ 
      return space+tmp; 
     }else if(exempt.indexOf(word) !== -1 || word[0] === '-'){ 
      return space+word; 
     } 

     return space+'-'+word; 
    }); 

    this.value = value.slice(1, value.length); 
}); 
</script> 
相關問題