Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript text区域计数行,使用正则表达式计数连字符行_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript text区域计数行,使用正则表达式计数连字符行

Javascript text区域计数行,使用正则表达式计数连字符行,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我一直在试图解决使用正则表达式忽略以双连字符开头的行,并将单行作为单独的行进行计数,将双连字符行作为单独的行进行计数并显示在文本区域之外的问题 我已经尝试并成功地计算了每一行,但忽略了连字符和计数,我不知道如何使用正则表达式做到这一点 另一方面,我想将代码附加到一个span项中,但它删除了Item元素的文本 这是我的代码和示例图像。 $(文档).ready(函数(){ 变量项=$(“#项”); 变量组=$(“#组”); $(“#成分列表”).keydown(函数(e){ 换行符=$(this

我一直在试图解决使用正则表达式忽略以双连字符开头的行,并将单行作为单独的行进行计数,将双连字符行作为单独的行进行计数并显示在文本区域之外的问题

我已经尝试并成功地计算了每一行,但忽略了连字符和计数,我不知道如何使用正则表达式做到这一点

另一方面,我想将代码附加到一个span项中,但它删除了Item元素的文本

这是我的代码和示例图像。

$(文档).ready(函数(){
变量项=$(“#项”);
变量组=$(“#组”);
$(“#成分列表”).keydown(函数(e){
换行符=$(this).val().split(“\n”).length;
项目.文本(换行符);
});
});
。配料部分{
填充:20px;
宽度:100%;
框大小:边框框;
}
.配料部分文本区域{
宽度:100%;
}
.成分第h2节{
颜色:#0433a7;
边缘底部:20px;
}
.配料头{
显示:表格;
宽度:100%;
表布局:固定;
}
.Components__title{显示:表格单元格;}
.Components__countinfo{显示:表格单元格;文本对齐:右;}
.物品计数,
.group count{填充:5px 15px;背景色:#e4ebef;左边距:5px;字体大小:14px;}

成分
组:
项目:

初始化计数器

var groupsCount = 0;
var itemsCount = 0;
获取输入文本的数组

var arrayOfItems=$(this.val().split(“\n”)

运行数组中的所有元素并检查前两个符号。如果是
--
,则
groupscont++
else
itemscont++

for (var i=0; i<arrayOfItems.length; i++) {
  if (arrayOfItems[i][0] === '-' && arrayOfItems[i][1] === '-') {
    groupsCount += 1;
    itemsCount -= 1;
    groups.text("Groups: " + groupsCount);
  } else {
    itemsCount += 1;
    items.text("Items: " + itemsCount);
  }
}

成分
组:
项目:

初始化计数器

var groupsCount = 0;
var itemsCount = 0;
获取输入文本的数组

var arrayOfItems=$(this.val().split(“\n”)

运行数组中的所有元素并检查前两个符号。如果是
--
,则
groupscont++
else
itemscont++

for (var i=0; i<arrayOfItems.length; i++) {
  if (arrayOfItems[i][0] === '-' && arrayOfItems[i][1] === '-') {
    groupsCount += 1;
    itemsCount -= 1;
    groups.text("Groups: " + groupsCount);
  } else {
    itemsCount += 1;
    items.text("Items: " + itemsCount);
  }
}

成分
组:
项目:


这很好,但我已经看到,如果您键入一个带有双连字符的单词
--
或没有相同的
--
,那么它会将
+1
添加到
组项目和
列表项目中,而这两个项目都不是您要查找的。
这意味着,如果您以
--
开始组名,则应将
+1
添加到
,而不是
,因此下面是代码中的小改动,可能有助于您进行修复

$(document).ready(function(){

var items = $('#items');
var groups = $('#groups');

$('#ingredients_list').keypress(function(e) {
    var groupsCount = 0;
    var itemsCount = 0;
    var arrayOfItems = $(this).val().split("\n");
    console.log(arrayOfItems);
    for (var i=0; i<arrayOfItems.length; i++) {
      if (arrayOfItems[i][0] === '-' && arrayOfItems[i][1] === '-') {
        groupsCount += 1;
        groups.text("Groups: " + groupsCount);
      } if (arrayOfItems[i][0] === '.'){ // I have given '.' here in single quote, you can add regex what you are looking for like numbers, letters, or expressions that start with. 
        itemsCount += 1;
        items.text("Items: " + itemsCount);
      }
    }
});
});
$(文档).ready(函数(){
变量项=$(“#项”);
变量组=$(“#组”);
$(“#成分列表”)。按键(功能(e){
var-groupscont=0;
var itemsCount=0;
var arrayOfItems=$(this.val().split(“\n”);
控制台日志(arrayOfItems);

对于(var i=0;i这很好,但我已经看到,如果您键入一个带有双连字符的单词
--
或没有相同的
--
,那么它会将
+1
添加到
组项目
列表项目
,而这两个项目都不是您想要的。 这意味着,如果您以
--
开始组名,则应将
+1
添加到
,而不是
,因此下面是代码中的小改动,可能有助于您进行修复

$(document).ready(function(){

var items = $('#items');
var groups = $('#groups');

$('#ingredients_list').keypress(function(e) {
    var groupsCount = 0;
    var itemsCount = 0;
    var arrayOfItems = $(this).val().split("\n");
    console.log(arrayOfItems);
    for (var i=0; i<arrayOfItems.length; i++) {
      if (arrayOfItems[i][0] === '-' && arrayOfItems[i][1] === '-') {
        groupsCount += 1;
        groups.text("Groups: " + groupsCount);
      } if (arrayOfItems[i][0] === '.'){ // I have given '.' here in single quote, you can add regex what you are looking for like numbers, letters, or expressions that start with. 
        itemsCount += 1;
        items.text("Items: " + itemsCount);
      }
    }
});
});
$(文档).ready(函数(){
变量项=$(“#项”);
变量组=$(“#组”);
$(“#成分列表”)。按键(功能(e){
var-groupscont=0;
var itemsCount=0;
var arrayOfItems=$(this.val().split(“\n”);
控制台日志(arrayOfItems);

对于(var i=0;这很好,但当我将其开发为PHP时,字符串翻译将很难从javascript中获得。这很好,但当我将其开发为PHP时,字符串翻译将很难从javascript中获得。感谢并感谢您添加的代码。但看起来像是其中的一个小故障。当我添加一个带有
--
的部分时,它需要第一次进入该项目而不是一个组。如果我删除所有内容并单击外部,则两者的值都应为零。我们如何在其中做到这一点?@Maqk我更新我的帖子并在页面上添加
mousedown
事件。我还添加了空字符串检查。检查它!@Zhenya Telegein-而不是
If(arrayOfItems[I][0]=='-'&&arrayOfItems[I][1]=='-'{
我们可以使用正则表达式而不是使用条件代码来查找带有双hypens的字符串吗?@Maqk您可以使用
数组fitems[i]。子字符串(0,2)=='-'
:)
子字符串(0,2)
将使用前两个符号:)请随意提问!很抱歉,我将签入代码:PThanks设置为哑巴,并对您添加的代码表示感谢。但这看起来像是其中的一个小故障。当我添加一个带有
--
的节时,它将第一个条目而不是一个组。如果我删除所有内容并单击外部,则两者的值都应为零。我们如何在其中做到这一点?@Maqk我更新了我的帖子并在页面上添加了
mousedown
事件。我还添加了空字符串检查。检查它!@Zhenya Telegein-而不是
if(arrayOfItems[I][0]==='-'&arrayOfItems[I][1]='-')){
我们可以使用正则表达式而不是使用条件代码来查找具有双hypens的字符串吗?@Maqk您可以使用
arrayOfItems[i]。子字符串(0,2)=='-'
:)
子字符串(0,2)
将使用前两个符号:)请随意提问!抱歉,我制作了愚蠢的签入代码:p感谢您指出它,但您的代码仅在以组开头时有效。如果它以项目开头,则不算数。感谢您指出它,但您的代码仅在以组开头时有效。如果它以项目开头,则不算数。