2017-09-20 19 views
0

不正な文字を許可せず、不正な文字を良いものに置き換えることで、データベースにmeta_keyとして正しい文字列を追加する手助けをしたい。私はこれとその素晴らしい仕事を持っています。キーアップ時に文字列内の複数の文字を置換する

$('.custom_field_name').keyup(function() { 
    var v = this.value.replace(/\W/,''); 
    if (v!=this.value) this.value = v; 
}); 

しかし、私はまた、「_「アンダーラインで」」スペースを交換したい、と私はどこにもなっていない、このようにコードをしようとしています。

$('.custom_field_name').keyup(function() { 
    var v = this.value.replace(/\W/,'') && (' ','_'); 
    if (v!=this.value) this.value = v; 
}); 

または

$('.custom_field_name').keyup(function() { 
    var v = this.value.replace(/\W/,''); 
    var v = this.value.replace(' ','_'); 
    if (v!=this.value) this.value = v; 
}); 

答えて

1

あなたは、二回v変数を宣言することを使用することはできません。

$('.custom_field_name').keyup(function() { 
    var v = this.value.replace(/\W/,''); 
    v = v.replace(' ','_'); 
    this.value = v; 
}); 
+0

これはうまくいかず、正しい方向に私を指摘しました。まず最初にスペースを作っておかなければならなかった。 – Fredrik

0

私はそれがこのコードで動作するようになりました!また、LowerCase()に追加されました。 問題をvを2回宣言して(@GGO)順序を変更していない。

jQuery('.custom_field_name').keyup(function() { 
      var v = this.value.replace(' ','_'); 
      var vee = v.toLowerCase().replace(/\W/,''); 
      if (vee!=this.value) this.value = vee; 
}); 
関連する問題