例:次の値で入力しました:(099)123 45 67削除時に数字を下線()に置き換えたい_
:(099)123 __ __
どうすればいいですか?現在の文字位置を返す機能があります。次にcharAt()
、文字を取得し、を使用して置き換えreplace()
ます。ただし、同じ文字が複数ある場合は、カーソルの横にある文字ではなく、最初の文字が置き換えられます。何かアイデアはありますか?
例:次の値で入力しました:(099)123 45 67削除時に数字を下線()に置き換えたい_
:(099)123 __ __
どうすればいいですか?現在の文字位置を返す機能があります。次にcharAt()
、文字を取得し、を使用して置き換えreplace()
ます。ただし、同じ文字が複数ある場合は、カーソルの横にある文字ではなく、最初の文字が置き換えられます。何かアイデアはありますか?
replace()
標準機能でこのタイプの置換に対応できるとは思いません。
substring()
文字列をto(文字の前に1つの文字列、後に1つの文字列)に分割してから、それらを間に連結して戻す必要があります'_'
。
正規表現関数としてreplaceを使用します。これを行うには、検索式をスラッシュで囲みます。すべての出現箇所(最初だけではなくすべての数字)を検索するには、検索式の後に「g」を追加して、グローバルオプションで使用します。あなたの場合、replace(/ [0-9] / g、 "_")を使用する必要があります
別の答え-@samjudsonが言ったことにいくぶん似ています:
サブストリングを使用する必要がありますが、少し複雑です。
IEまたはOperaの場合、次のオブジェクトを使用します。document.selection.createRange().text = "_";
Mozillaブラウザの場合:
inputBox.focus();
var position = inputBox.selectionStart; //selectionEnd would work as well
inputBox.value = inputBox.value.substring(0, position) + '_' +
inputBox.value.substring(position, inputBox.value.length);
このようなRT編集者からのアイデア:)、およびウィキペディアのアイデア。