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
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' ]
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.
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+
.
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());
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.
const re = ' ';
var arr = ['\t','\n3\t3','\n\t','\n3\t3','\n2\t','\n\t2','\n']
for(let i=0 ; i< arr.length ; i++)
{
let row = arr[i].replaceAll('\t','').replaceAll('\n','').split(re);
console.log(row);
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.