- father::元笔记汇总
1. 多级需求和方案设想及其调研结果
- 获取搜索框输入的文本
- 获取元素文本
- ==方案==:
- 使用css选择器获取输入框元素
- 使用元素
.value获得输入内容
- ==方案==:
- 获取元素文本
- 把文本内容放在前面的
path:() OR括号内- 如果没有前缀
- 就加上前缀
- 判断是否有完整前缀
- 判断是否残缺:
- 方案设想:
- 使用search()判断是否残缺
- 正则表达式:
/^path:\(.*\) OR /g
- 如果完全没有
- ==方案==:
- 用str对象内置search方法
- 正则表达式:
/^path:\(.*\) OR /g
- 正则表达式:
- 方案需求:
- 正则匹配前缀
- 用str对象内置search方法
- ==方案==:
- 如果至少有
path::- 后面的每种残缺都要替换成完整前缀
- 方案设想:
- 用replace()方法, 用正则或符号把每种残缺可能都列出来
- 正则表达式:
/^path:\(?\)? ?O?R?/g
- 方案设想:
- 如果残缺前缀括号内已经有文本, 要把这文本也替换
- 后面的每种残缺都要替换成完整前缀
- 方案设想:
- 判断是否残缺:
- 追加前缀
- ==方案==:
- 在输入内容前面加上前缀,再赋值给输入内容
- 判断前缀是否残缺
- ==方案==:
- 判断是否有完整前缀
- 就加上前缀
- 如果有前缀
- 把前缀后面的输入内容放进括号里面
- ==方案==:
- 用str对象内置match方法返回前缀后面的输入内容, 保存起来
- 用正则表达式:
/(?<=\) OR ).*/g
- 用正则表达式:
- 用str对象内置replace方法把前缀括号内的东西替换为前缀后的内容
- 用正则表达式:
/(?<=^path:\().*(?=\) OR )/g
- 用正则表达式:
- 用str对象内置match方法返回前缀后面的输入内容, 保存起来
- ==方案==:
- 把前缀后面的输入内容放进括号里面
- 如果没有前缀
- 能够等待空闲
- 方案设想:
- 先clearTimeout()
- 再setTimeout()
- 方案设想:
- 能持续输入删除后面文本的中间位置
- 解决每次设置文本之后,光标会自动跳到最后的问题
- 获取光标位置
- 方案设想:
- 使用输入框对象的selectionStart属性
- 方案设想:
- 控制光标位置
- 方案设想:
- 使用输入框对象的setSelectionRange()可以设置光标位置.
- 获取前缀后文本的长度
- 获取前缀括号里的文本长度
- 得到相差长度
- 光标向前移动相差的长度
- 方案设想:
- 获取光标位置
- 解决每次设置文本之后,光标会自动跳到最后的问题
2. 材料调研
2.1. 调研材料
2.1.1. 等待空闲:
如何在 JavaScript 中检测空闲时间-之路教程 (onitroad.com)
2.1.2. 控制光标位置
js控制输入框光标位置(setSelectionRange详解)_一群青红椒的博客-CSDN博客_setselectionrange
2.2. 调研材料及结论
2.2.1. serch()语法:
字符串.serch(正则表达式)//返回布尔值2.2.2. match()语法:
字符串.match(正则表达式)//返回匹配的字符串数组2.2.3. replace()语法:
字符串.replace(正则表达式,"用于替换的字符串")//返回替换后的字符串input元素有一个属性, 名为selectionStart, 其保存有光标的位置
3. 随想(未整理)
3.1. 随想:
- 完整前缀长度11
3.2. 算法:
- 输入触发
- 获得输入内容
- 检测是否有完整前缀
- 如果有
- 判断是否有队列
- 如果没有
- 开始空闲等待队列, 并重置空闲计时器
- 获取前缀后面的内容
- 把前缀后面的内容替换前缀括号中的内容
- 开始空闲等待队列, 并重置空闲计时器
- 如果没有
- 判断是否有队列
- 如果没有
- 判断是否残缺
- 如果完全没有
- 在前面添加前缀
- 如果残缺
- 替换残缺内容
- 如果完全没有
- 判断是否残缺
- 如果有