js 获取 textarea 光标所在行的开头有多少空格

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 获取 textarea 光标所在行的开头有多少空格相关的知识,希望对你有一定的参考价值。

比如这个,我想获取光标所在行(就是第二行)的开头有几个空格
------目前我已经想到了一个办法,解决思路如下:
//获取光标前的内容,index是光标的位置(光标的位置百度下)
var val=$("#editable").val().substr(0,index);
//获取光标所在行的信息
var hang=val.substr(val.lastIndexOf("\n")+1);
var len=0;
for ( var int = 0; int < hang.length; int++)
if(hang.charAt(int)===" ")//判断是否是空格
len++; //计算开头的空格数
else
break;

如果有更好的办法请继续回复我,3Q!!!

// textarea的id为test,修改一下
var t = document.getElementById('test');
t.onclick = function () 
  var v = this.value;
  // 开始到光标位置的内容
  var cv = '';
  if ('selectionStart' in t) 
      cv = v.substr(0, t.selectionStart);
   else 
    var oSel = document.selection.createRange();
    oSel.moveStart('character', -t.value.length);
    cv = oSel.text;
  
  // 获取当前是几行
  var cl = cv.split('\\n').length - 1;
  // 当前行的内容
  var clv = v.split('\\n')[cl];
  // 获取空格数量
  var spaceCount = clv.replace(/^(\\s*).*/, '$1').length;
  alert(spaceCount);

追问

replace(/^(\s*).*/, '$1').length;
这个是算开头的空格数吗?

追答

参考技术A 我智能得出有几行,楼下补充! 参考技术B 使用正则匹配哦

vimcutlesscat命令

退出保存:wq

退出并强制保存:wq!

强制退出,不保存:q!


光标移动到文件的最后一行 G

光标移动到文件的第一行 gg


从光标所在位置将光标移动到当前行的开头 ^ 0 home

从光标所在位置将光标移动到当前行的结尾 $ end


取消上一次的动作 u

删除一行 dd  

删除n行 ndd


技术分享

cat -s有连续两行以上的空白行,就代换为一行的空白行

tac 反向读取 以行为标准

rev 这个是反向读取字母


more

b向上一屏

空格向下一屏      

回车向下一行

= 显示行号

/搜索

q直接退出

v 进行vi编辑模式


less

可以上下键

兼容more命令 常用此命令

技术分享

-s   有连续两行以上的空白行,就代换为一行的空白行 cat一样

N    显示行号


cut

技术分享

技术分享

-b -c 区别不大,可以看下面的帖子  一个按字符 一个按字节

http://blog.csdn.net/u011003120/article/details/52190187


技术分享

技术分享

-d 以什么为分隔符

要和-f 联用

默认为tab作分隔符

技术分享

tab分隔  显示第二段及第四段

以空格为分隔,显示第二段及第四段

注意 cut:分界符必须是单个字符


awk默认以空格作为分隔符



有时怎么看文档中是N个空格还是tab键

技术分享

tab键显示










本文出自 “11745576” 博客,请务必保留此出处http://11755576.blog.51cto.com/11745576/1982182

以上是关于js 获取 textarea 光标所在行的开头有多少空格的主要内容,如果未能解决你的问题,请参考以下文章

前端可以用js获取textarea中当前光标位置的行数吗?

jquery 或者js 怎么获取页面光标所在的元素?

如何利用JS代码选取textarea中的指定行

JavaScript 将文本光标设置为input / textarea的开头/结尾

vim 一些操作

vimcutlesscat命令