如何使用javascript检测文本区域中新行的开头是否存在特定字符串?

如何使用javascript检测文本区域中新行的开头是否存在特定字符串?,javascript,Javascript,我有一个文本区域,在那里我需要检测“+”是否在每一行的开头跟一个空格字符。我可以在keyDown事件中得到keyCode,但是,即使字符出现在字符串的中间,它也会返回键码。只有当特定字符组合在文本区域的新行的开头,才需要调用函数。是否有人建议我怎么做? < p>当用户输入字符串 +和(空间)时,您需要截取。在文本区域中,检查其位置 您可以检查最后一个数字键的前几个字符,因此: 监听按键关闭事件 检查最后一个键是否为空格(因为它是您要查找的序列的最后一个字符) 然后检查前面的字符,在您的例子中是

我有一个文本区域,在那里我需要检测“+”是否在每一行的开头跟一个空格字符。我可以在keyDown事件中得到keyCode,但是,即使字符出现在字符串的中间,它也会返回键码。只有当特定字符组合在文本区域的新行的开头,才需要调用函数。是否有人建议我怎么做?

< p>当用户输入字符串<代码> +<代码>和<代码>(空间)时,您需要截取。在文本区域中,检查其位置

您可以检查最后一个数字键的前几个字符,因此:

  • 监听按键关闭事件
  • 检查最后一个键是否为
    空格
    (因为它是您要查找的序列的最后一个字符)
  • 然后检查前面的字符,在您的例子中是一个
    换行符(\n)
    ,后跟字符串
    “+”
$(“#测试”).keydown(函数(e){
如果(e.key=='')
log(startsWith(e.target,'\n+');
});
/*
在以下情况下返回true:
-“target”中的文本以“exp”开头
-从当前光标位置开始
*/
函数startsWith(目标,exp){
var expLen=exp.length;
var str=$(target.val();
如果(target.selectionStart>expLen){
str=$(target.val();
}否则{
如果(“\n”+$(target).val()==exp){
返回true;
}
}
var start=target.selectionStart-expLen;
var subStr=$(target.val().subStr(start,expLen);
if(subStr==exp){
返回true;
}否则{
返回false;
}
}

将代码像邮件一样发布,请至少分享您尝试过的内容。您所说的“开始新一行”是什么意思?文本换行,新行的起始位置取决于文本的数量和文本区域的宽度,用户可以根据样式进行更改。