Javascript 如何用逗号替换角中的新行字符
我有一个textarea字段,用户可以在其中输入新行中的输入以及逗号分隔的值。所以,当我发送API中的值时,在新行的情况下,会附加/n,并且在详细信息页面上可以看到相同的/n,这是我不希望看到的。下面是用户输入的示例 Ex-1Javascript 如何用逗号替换角中的新行字符,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
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(“,”));
}
使用regexsplit()
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;
}