I have the following array
const re = ' ';
var arr = ['\t', '\n3\t3', '\n\t', '\n3\t3', '\n2\t', '\n\t2', '\n']
i need to trim the \t and \n characters from strings. So when i try
for(let i = 0;i < arr.length;i ) {
let row = arr[i].split(re);
console.log(row);
}
i get
['', '']
['\n3', '3']
['\n', '']
['\n3', '3']
['\n2', '']
['\n', '2']
['\n']
i can't find a way to remove the \n charactes here when i get to this point so
when i have just \n
as element then it should be replaced with '' - empty string.
If the character includes other things inside for example
\n2
so \n before or after a number then i shold get just the number and to have just 2 inside
How can i replace this \n cahracters
CodePudding user response:
Reference: Here
It is not good practice to do with split method. You can use replace method instead.
Here is example what you want to do:
var someText = "Here's some text.\n It has some line breaks that will be removed \r using Javascript.\r\n";
someText = someText.replace(/(\r\n|\n|\r)/gm,"");
console.log(someText);
You can edit your replace method what you want to use in it.
Note: "/(\r\n|\n|\r)/gm" this is a regex.
CodePudding user response:
You may do a regex replacement on [\t\n]
to remove these characters:
var arr = ['\t', '\n3\t3', '\n\t', '\n3\t3', '\n2\t', '\n\t2', '\n'];
var output = arr.map(x => x.replace(/[\t\n] /g, ""));
console.log(output);
Note that if there could be other whitespace characters which you also want to remove, just do a regex replacement on \s
.
CodePudding user response:
You can just use String.prototype.trim(). It cleans \n
and \t
as well. It is only for trimming. It will not remove characters in the middle of the string.
Example:
const arr = ['\t', '\n3\t3', '\n\t', '\n3\t3', '\n2\t', '\n\t2', '\n'];
const newArr = arr.map(val => val.trim());
CodePudding user response:
Use replace()
function of string combined with map()
function of array. It will look like this
arr.map(c => c.replace(/(\n|\t)/gi, ''))
Output will be:
[ '', '33', '', '33', '2', '2', '' ]
If you don't want to see empty strings in array you can just filter them with .filter(Boolean)
arr.map(c => c.replace(/(\n|\t)/gi, '')).filter(Boolean)
Output will be:
[ '33', '33', '2', '2' ]
CodePudding user response:
You can use a simple replace function:
var arr = ['\t', '\n3\t3', '\n\t', '\n3\t3', '\n2\t', '\n\t2', '\n']
var row="";
var newArr=[];
for(i=0; i<arr.length; i ){
row = parseInt(arr[i].replace('\tn',""));
if(isNaN(row) === false){newArr.push(row)}
}
console.log(newArr);
First replace("\,t,n")
your characters, then parseInt()
to convert remaining string-numbers to integers, lastly distinguish those numbers and push()
them to a new array.