I have a string |0|0|0|0
but it needs to be 0|0|0|0
How do I replace the first character ('|') with (''). eg replace('|','')
(with JavaScript)
You can do exactly what you have :)
var string = "|0|0|0|0";
var newString = string.replace('|','');
alert(newString); // 0|0|0|0
You can see it working here, .replace() in javascript only replaces the first occurrence by default (without /g), so this works to your advantage :)
If you need to check if the first character is a pipe:
var string = "|0|0|0|0";
var newString = string.indexOf('|') == 0 ? string.substring(1) : string;
alert(newString); // 0|0|0|0
.replace() only replaces the first occurence, do you want to remove the | only if it's leading? I updated the answer to reflect this option as well :)var newstring = oldstring.substring(1);
If you're not sure what the first character will be ( 0 or | ) then the following makes sense:
// CASE 1:
var str = '|0|0|0';
str.indexOf( '|' ) == 0 ? str = str.replace( '|', '' ) : str;
// str == '0|0|0'
// CASE 2:
var str = '0|0|0';
str.indexOf( '|' ) == 0? str = str.replace( '|', '' ) : str;
// str == '0|0|0'
Without the conditional check, str.replace will still remove the first occurrence of '|' even if it is not the first character in the string. This will give you undesired results in the case of CASE 2 ( str will be '00|0' ).
Try this:
var str = "|0|0|0|0";
str.replace(str.charAt(0), "");
Avoid using substr() as it's considered deprecated.
It literally is what you suggested.
"|0|0|0".replace('|', '')
returns "0|0|0"
.replace()method doesn't replace all occurrences (unless you use/g), it only replaces the first occurence: w3schools.com/jsref/jsref_replace.asp