如何在 angular 中用逗号替换换行符
How to replace new line character with comma in angular
我有一个文本区域字段,用户可以在其中输入新行以及逗号分隔值。因此,当我在 API 中发送值时,在新行的情况下会附加 /n,并且在我不想要的详细信息页面上可以看到相同的 /n。下面是用户输入的例子。
Ex-1
ABC
red
test,blue
Ex-2
abc,blue,
green,red
test
我想每次都检查换行符和逗号,我的意思是说
如果用户在新行中输入值,则用逗号替换换行符,如果已经附加了逗号
然后保持原样。
预期输出
Ex-1
ABC,red,test,blue
Ex-2
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;
}
您需要先用换行符拆分字符串,完成后从数组中删除所有空字符串,然后用 ,
连接它。此外,我们需要处理一些双逗号,因为字符串包含逗号。
var str = `ABC
red
test,blue`;
var str2 = `abc,blue,
green,red
test`;
formateString(str);
formateString(str2);
function formateString(str) {
var strArray = str.split("\n");
strArray = strArray.filter((item) => {
return item !== '';
});
console.log(strArray.join(",").split(",,").join(","));
}
使用正则表达式split()
const str1 = `ABC
red
test,blue`;
const str2 = `abc,blue,
green,red
test`;
console.log(str1.split(/[,\n]+\s+/g).join(','))
console.log(str2.split(/[,\n]+\s+/g).join(','))
另一种方法是在用户每次输入字符时拦截输入。使用这种方法,您可以避免在每次击键(包括多余的击键)时一遍又一遍地解析整个文本。
以下是一段简单的代码,可以动态地将换行符和空格替换为逗号。假设您在 HTML.
某处有一个 ID 为 textArea 的文本区域
const textArea = document.getElementById('textArea');
const parseText = function parseText(e) {
if (e.keyCode === 13 || e.keyCode === 32) {
e && e.preventDefault();
let text = textArea.value;
let curStart = textArea.selectionStart;
let curEnd = textArea.selectionEnd;
if (curStart == text.length && curEnd == text.length && !text.endsWith(',')) {
text += ',';
textArea.value = text;
}
}
}
textArea.addEventListener('keydown', parseText);
此致
我有一个文本区域字段,用户可以在其中输入新行以及逗号分隔值。因此,当我在 API 中发送值时,在新行的情况下会附加 /n,并且在我不想要的详细信息页面上可以看到相同的 /n。下面是用户输入的例子。
Ex-1
ABC
red
test,blue
Ex-2
abc,blue,
green,red
test
我想每次都检查换行符和逗号,我的意思是说 如果用户在新行中输入值,则用逗号替换换行符,如果已经附加了逗号 然后保持原样。
预期输出
Ex-1
ABC,red,test,blue
Ex-2
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;
}
您需要先用换行符拆分字符串,完成后从数组中删除所有空字符串,然后用 ,
连接它。此外,我们需要处理一些双逗号,因为字符串包含逗号。
var str = `ABC
red
test,blue`;
var str2 = `abc,blue,
green,red
test`;
formateString(str);
formateString(str2);
function formateString(str) {
var strArray = str.split("\n");
strArray = strArray.filter((item) => {
return item !== '';
});
console.log(strArray.join(",").split(",,").join(","));
}
使用正则表达式split()
const str1 = `ABC
red
test,blue`;
const str2 = `abc,blue,
green,red
test`;
console.log(str1.split(/[,\n]+\s+/g).join(','))
console.log(str2.split(/[,\n]+\s+/g).join(','))
另一种方法是在用户每次输入字符时拦截输入。使用这种方法,您可以避免在每次击键(包括多余的击键)时一遍又一遍地解析整个文本。
以下是一段简单的代码,可以动态地将换行符和空格替换为逗号。假设您在 HTML.
某处有一个 ID 为 textArea 的文本区域const textArea = document.getElementById('textArea');
const parseText = function parseText(e) {
if (e.keyCode === 13 || e.keyCode === 32) {
e && e.preventDefault();
let text = textArea.value;
let curStart = textArea.selectionStart;
let curEnd = textArea.selectionEnd;
if (curStart == text.length && curEnd == text.length && !text.endsWith(',')) {
text += ',';
textArea.value = text;
}
}
}
textArea.addEventListener('keydown', parseText);
此致