将输入光标设置为javascript正则表达式之后的正确位置
Set input cursor to proper position after javascript regex
调用regex后,光标将结束。所以我尝试了这个修复,但也没有正常工作。这怎么能解决?我的目标:如果字段为空并且键入数字>光标在末尾,如果返回添加或删除任何数字>光标位于正确位置(不在末尾)
document.getElementById('target').addEventListener('input', function (e) {
var target = e.target,
position = target.selectionStart; // Capture initial position
target.value = target.value.replace(/'B(?=('d{3})+(?!'d))/g, "-");// This triggers the cursor to move.
target.selectionEnd = position; // Set the cursor back to the initial position.
});
Fiddle
将选择范围设置为您创建的"position",如果包含"-",则会增加位置,如下所示:
document.getElementById('target').addEventListener('input', function (e) {
var target = e.target,
position = target.selectionStart; // Capture initial position
var old = target.value;
target.value = target.value.replace(/'B(?=('d{3})+(?!'d))/g, "-");
if(old != target.value)
position++;
target.setSelectionRange(position, position);
});
尝试setSelectionRange()
。
你的小提琴:**http://jsfiddle.net/ku8bg0c9/2/
我把10000作为长度,因为我认为永远不会输入10000个字符。但您可以根据输入字符串的长度设置长度。
document.getElementById('target').addEventListener('input', function (e) {
var target = e.target,
position = target.selectionStart; // Capture initial position
target.value = target.value.replace(/'B(?=('d{3})+(?!'d))/g, "-"); // This triggers the cursor to move.
target.selectionEnd = position; // Set the cursor back to the initial position.
target.setSelectionRange(10000, 10000);
});
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- Javascript删除数组中某个位置之后的项
- Skrollr:当滚动位置在最后一个关键帧之后时传递函数
- jQueryUI-将draggable移回原始位置,即使在放入dropable之后也是如此
- JavaScript 将节点移动到 lastChild 之后的位置
- 在使用可排序排序期间/之后显示使用 JSON 创建的列表中的项目位置
- 如何在窗口位置之后存储数据
- 将输入光标设置为javascript正则表达式之后的正确位置
- 文本区域标签高亮显示应用于第一行之后的错误位置
- 在.replace()之后恢复光标位置
- CodeMirror:如何在光标位置之前或之后读取编辑器文本
- 如何在window.open之后获得窗口位置
- 在单击add函数的位置之后添加另一行
- Windows位置不要在XMLHttpRequest之后重定向
- 限制在剑道UI树形视图之前和之后的下拉位置
- 内容可编辑分区-在.html()之后更新光标位置
- 在jQuery(document).ready()之后从外部位置运行javascript
- 在jQuery的slideUp之后保持相同的位置
- 谷歌位置自动补全-昨晚之后没有结果
- 三.在position.set()之后,光线投射器与原始网格位置相交