在删除时用另一个字符替换字符

时间:2012-05-01 08:05:29

标签: javascript jquery

例如:我输入了这个值:(099)123 45 67 我想在删除时用下划线(_)替换数字:(099)123 __ __

我怎么办?我有一个函数,它返回当前的字符位置。然后使用charAt()我获取角色,然后使用replace()替换它。但是如果有多个相同的字符,它将替换第一个字符,而不是光标旁边的字符。 有什么想法吗?

3 个答案:

答案 0 :(得分:0)

我不认为标准replace()函数可以容纳这种类型的替换。

您必须使用substring()将字符串拆分为(字符前面的一个字符串和后面的一个字符串),然后将它们连接在一起,然后将'_'连接起来。

答案 1 :(得分:0)

使用replace作为Regex功能。通过在斜杠中使用搜索表达式来完成此操作。要查找所有出现次数(所有数字,而不仅仅是第一个),请在搜索表达式后添加“g”,将其与全局选项一起使用。 在您的情况下,您应该使用替换(/ [0-9] / g,“_”)

答案 2 :(得分: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编辑的想法,例如这个:)和维基百科上的想法。

相关问题