首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取contenteditable中的输入字符位置

问获取contenteditable中的输入字符位置
EN

Stack Overflow用户
提问于 2018-11-17 22:03:53
回答 2查看 123关注 0票数 0

我在Angular 6项目中有一个contenteditale div

代码语言:javascript
复制
<div contenteditable="true" (input)="checkContent($event)"></div>

当用户输入一个字符时,我希望得到该字符的位置。

我实际上要做的是检查输入字符之前是否有'@‘,如果有,则计算'@’和输入字符之间的字符数

示例(考虑大写字符是最后输入的字符):

代码语言:javascript
复制
hellO // postion = 4
hello World // postion = 6
Hello world // postion = 0

现在,我可以使用event.data从组件中获取输入的字符

代码语言:javascript
复制
checkContent(event: any){
    console.log(event.data);
}

如何获取最后输入的字符的位置?

EN

回答 2

Stack Overflow用户

发布于 2018-11-17 22:40:58

如何使用keydown和keyup事件来获取两个字符串之间的差异,然后您将准确地找到最后一个字符的索引。

票数 0
EN

Stack Overflow用户

发布于 2018-11-18 00:54:00

如果我没弄错你想要什么,那么这就行了.

1-在光标位置插入一个临时跨度(带有id),其中包含您永远不会键入的字符(我使用十六进制7F)。

2-将div的textContent (innerText)放入一个变量中。

3-删除临时跨度。

4-使用Variable.search(/\x7F/) (在我的示例中)来获取当前字符的位置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53351952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档