-1

例:次の値で入力しました:(099)123 45 67削除時に数字を下線()に置き換えたい_:(099)123 __ __

どうすればいいですか?現在の文字位置を返す機能があります。次にcharAt()、文字を取得し、を使用して置き換えreplace()ます。ただし、同じ文字が複数ある場合は、カーソルの横にある文字ではなく、最初の文字が置き換えられます。何かアイデアはありますか?

4

3 に答える 3

0

replace()標準機能でこのタイプの置換に対応できるとは思いません。

substring()文字列をto(文字の前に1つの文字列、後に1つの文字列)に分割してから、それらを間に連結して戻す必要があります'_'

于 2012-05-01T08:08:24.537 に答える
0

正規表現関数としてreplaceを使用します。これを行うには、検索式をスラッシュで囲みます。すべての出現箇所(最初だけではなくすべての数字)を検索するには、検索式の後に「g」を追加して、グローバルオプションで使用します。あなたの場合、replace(/ [0-9] / g、 "_")を使用する必要があります

于 2012-05-01T08:11:47.610 に答える
0

別の答え-@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編集者からのアイデア:)、およびウィキペディアのアイデア。

于 2012-05-01T09:44:24.573 に答える