keyCode
またはプロパティはwhich
文字列を返しません。単一の文字さえも返しません。クライアントが打ったキーを表すキー コードを返します。対応する char: を取得したい場合String.fromCharCode(e.which || e.keyCode);
。
たとえば、ユーザーがa
キーを押すと、キーコードは になり97
、String.fromCharCode(97)
が返されますa
。
天気を知りたい場合、または要素の現在の値に省略形が含まれていないtel
場合は、次のようにする必要があります。
$('#tags').keyup(function(e)
{
this.value = this.value.replace(/\btel\b/gi,'telephone');
});
これはテストされておらず、さらに作業が必要になる可能性が非常に高いtel
ですが、私の知る限り、すべてのbyを置き換えたいと考えていますtelephone
。私が使用する式/\btel\b/
は、すべての部分文字列を置き換えますが、その前後tel
に単語境界がある場合 (単語の一部を置き換えないようにするため)。
文字列の末尾とダッシュも両方とも単語の境界と見なされるわけではありません。と入力したい場合はtelevision
、最終的に と入力しますtelephoneevision
。これを避けるには、もう少し複雑な式が必要になります。JS がダッシュを境界として扱わないようにする方法の例を次に示します。文字列の末尾も考慮してください。
アップデート
おそらく、この表現は思ったほど簡単ではないので、次の表現を使用することをお勧めします。
this.value = this.value.replace(/(?:(\-?\b))tel(?:(\b\-?.))/gi,function(all,b1,b2)
{
if (b1 === '-' || b2.charAt(0) === '-')
{//dash, don't replace
return all;
}//replace
return b1 + 'telephone' + b2;
});
入力:電話が必要です。すぐに==>電話が必要です。電話が必要です。電話が
必要です。今夜のホステルを予約したい==>今夜
のホステルを予約したいテルアビブに行く ==>テルアビブに行く