2014-10-30 5 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

В случае условие также добавить условие ли «-» присутствует, если не будет сделано, вы будете добавлять символ для каждого ключа до –

+0

Это будет относиться к полной стоимости, как word_check. Если вы хотите добавить дефис перед каждым словом в ценности. Вы уверены, что не хотите разделить значение на основе разделителей? – D3V

+2

'$ ('# WhatTextBox'). Val()' - это действительно неэффективный способ записи 'this.value'. – RobG

ответ

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

+0

вы не загрузили jquery. конечно, это не сработало –

+0

Я добавил ответ –

0

Почему вы не используете метод замены?

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

Это было легко, как я могу проверить, является ли это конкретное слово «есть» или «и»? – X10nD

+0

Так что дефис для «выдается»? – RobG

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> 
Смежные вопросы