2014-10-30 63 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> 
相关问题