Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.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 如何用逗号替换角中的新行字符_Javascript_Angular_Typescript_Angular8 - Fatal编程技术网

Javascript 如何用逗号替换角中的新行字符

Javascript 如何用逗号替换角中的新行字符,javascript,angular,typescript,angular8,Javascript,Angular,Typescript,Angular8,我有一个textarea字段,用户可以在其中输入新行中的输入以及逗号分隔的值。所以,当我发送API中的值时,在新行的情况下,会附加/n,并且在详细信息页面上可以看到相同的/n,这是我不希望看到的。下面是用户输入的示例 Ex-1 ABC red test,blue Ex-2 abc,blue, green,red test 我想每次都检查换行符和逗号,我的意思是 若用户在新行中输入值,则用逗号替换新行字符,若已附加逗号 那就保持原样吧 预期产量 Ex-1 Ex-2 下面是我的代码 cr

我有一个textarea字段,用户可以在其中输入新行中的输入以及逗号分隔的值。所以,当我发送API中的值时,在新行的情况下,会附加/n,并且在详细信息页面上可以看到相同的/n,这是我不希望看到的。下面是用户输入的示例

Ex-1

ABC

red

test,blue
Ex-2

abc,blue,

green,red

test
我想每次都检查换行符和逗号,我的意思是 若用户在新行中输入值,则用逗号替换新行字符,若已附加逗号 那就保持原样吧

预期产量

Ex-1

Ex-2

下面是我的代码

createData(data) {
    const Obj = {};   
    if (data.enum && data.value_type === 'Enum') {
        Obj['values'] = data.enum.split(',');
    }    
    console.log(Obj,"constraint");
    return Obj;
  }

您需要首先使用换行符拆分字符串,完成后从数组中删除任何空字符串,并使用
将其合并。此外,我们还需要注意一些双逗号,因为字符串包含逗号

var str=`ABC
红色
测试,蓝色`;
var str2=`abc,蓝色,
绿色,红色
测试`;
格式限制(str);
格式预算(str2);
函数格式字符串(str){
var strArray=str.split(“\n”);
strArray=strArray.filter((项目)=>{
退货项目!='';
});
log(strArray.join(“,”).split(“,”).join(“,”));
}
使用regex
split()

const str1=`ABC
红色
测试,蓝色`;
const str2=`abc,蓝色,
绿色,红色
测试`;
console.log(str1.split(/[,\n]+\s+/g).join(','))

console.log(str2.split(/[,\n]+\s+/g).join(“,”)
另一种方法是在用户每次输入字符时拦截输入。使用此方法,您可以避免每次击键(包括冗余击键)都会反复解析整个文本

下面是一段简单的代码,用逗号替换换行符和空格。假设您的HTML中有一个id为textarea的textarea

const textArea=document.getElementById('textArea');
const parseText=函数parseText(e){
如果(e.keyCode==13 | | e.keyCode==32){
e&e.preventDefault();
设text=textArea.value;
让curStart=textArea.selectionStart;
让curEnd=textArea.selectionEnd;
if(curStart==text.length&&curEnd==text.length&&!text.endsWith(',')){
文本+=',';
textArea.value=文本;
}
}
}
textArea.addEventListener('keydown',parseText)查看是否有此帮助。这在jquery中,但在angular中也可以使用
var numlist=“1,4,6,7,3,34,34634,34”;var numlistNewLine=numlist.replace(/,/g,'\n')
abc,blue,green,red,test
createData(data) {
    const Obj = {};   
    if (data.enum && data.value_type === 'Enum') {
        Obj['values'] = data.enum.split(',');
    }    
    console.log(Obj,"constraint");
    return Obj;
  }