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