例如:我输入了这个值:(099)123 45 67
我想在删除时用下划线(_
)替换数字:(099)123 __ __
我怎么办?我有一个函数,它返回当前的字符位置。然后使用charAt()
我获取角色,然后使用replace()
替换它。但是如果有多个相同的字符,它将替换第一个字符,而不是光标旁边的字符。
有什么想法吗?
答案 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编辑的想法,例如这个:)和维基百科上的想法。