Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations TouchToneTommy on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Add space after comma in an array.

Status
Not open for further replies.

mommy

Programmer
Aug 12, 2002
3
US
I have a string that will be dynamic but will look like this: '111111111,221212121,123214541,455554845' (etc)
What I need to do is add a space after each comma, the length of the numbers after each comma will always be 9. So I need the above string to look like this.
'111111111, 221212121, 123214541, 455554845'
Actually, the string comes in as such" '012122221 122222215 455445544' What I need is to add a comma and leave one space after the comma. So the result should be.
'012122221, 122222215, 455445544'

Right now, with the code I have the result is '012122221,122222215,455445544' Notice the space after comma is gone.
Here is the code I am using




<script language=&quot;javascript&quot;>

var strNIINList;

function LTrim(str)
/***
PURPOSE: Remove leading blanks from our string.
IN: str - the string we want to LTrim

RETVAL: An LTrimmed string!
***/
{
var whitespace = new String(&quot; ,;|\t\n\r&quot;);

var s = new String(str);

if (whitespace.indexOf(s.charAt(0)) != -1) {
// We have a string with leading blank(s)...

var j=0, i = s.length;

// Iterate from the far left of string until we
// don't have any more whitespace...
while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
j++;


// Get the substring from the first non-whitespace
// character to the end of the string...
s = s.substring(j, i);
}

return s;
}

function RTrim(str)
/***
PURPOSE: Remove trailing blanks from our string.
IN: str - the string we want to RTrim

RETVAL: An RTrimmed string!
***/
{
// We don't want to trip JUST spaces, but also tabs,
// line feeds, etc. Add anything else you want to
// &quot;trim&quot; here in Whitespace
var whitespace = new String(&quot; ,;|\t\n\r&quot;);

var s = new String(str);

if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
// We have a string with trailing blank(s)...

var i = s.length - 1; // Get length of string

// Iterate from the far right of string until we
// don't have any more whitespace...
while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
i--;


// Get the substring from the front of the string to
// where the last non-whitespace character is...
s = s.substring(0, i+1);
}

return s;
}


function trim(str)
/***
PURPOSE: Remove trailing and leading blanks from our string.
IN: str - the string we want to Trim

RETVAL: A Trimmed string!
***/
{
return RTrim(LTrim(str));
}

function IsDelimiter(TheString){
//alert(escape(TheString));
//if (TheString == &quot;,&quot; || TheString == &quot;;&quot; || TheString == &quot; &quot; || TheString == &quot;|&quot;){
if (escape(TheString) == &quot;%2C&quot; || escape(TheString) == &quot;%3B&quot; || TheString == &quot; &quot; || escape(TheString) == &quot;%0D&quot; || escape(TheString) == &quot;%0A&quot; || escape(TheString) == &quot;%7C&quot;) {
return (true);
}
else{
return (false);
}
}


function ValidateNIIN(TheNIIN){
if(TheNIIN.length != 9 && TheNIIN.length != 0){
alert(&quot;NIIN &quot; + TheNIIN + &quot; is &quot; + TheNIIN.length + &quot; characters long. It needs to be 9 characters to be valid&quot;);
}
else{
strNIINList = strNIINList + TheNIIN + &quot;,&quot;;
}
}

function Check(TheForm){
//todo:
// check each NIIN for length = 9
// valid delimiters are space, comma, semicolon,pipeline
// could be NIINs entered with no delimeter
//
//loop through the string until we come across a valid delimiter
var strString;
var intStartPos;
var intLastDelimiterPos;

strNIINList = &quot;&quot;
strString = trim(TheForm.MultNiin1.value)
//alert(&quot;String Length: &quot; + strString.length);
alert(escape(strString));
intStartPos = 0;

//alert(strString.substring(6,8));

for(x = 0;x <= strString.length - 1;x++){
//alert(x);
if(x == (strString.length - 1)){
ValidateNIIN(strString.substring(intStartPos,x+1));
}

if(IsDelimiter(strString.substring(x,x+1))){
//alert(&quot;Current Position: &quot; + x);
//alert(&quot;Delimiter found at position: &quot; + x);
//alert(&quot;StartPos: &quot; + intStartPos);
//alert(&quot;EndPos: &quot; + x);
ValidateNIIN(strString.substring(intStartPos,x));
intLastDelimiterPos = x;
intStartPos = x + 1;
}
}

//alert(strNIINList);
var arrayofstrings;
var newarray;

newarray = new Array();

arrayofstrings = strNIINList.split(&quot;,&quot;);
//alert(arrayofstrings.length)
//alert(arrayofstrings[1]);
y = 0;
for(x=0;x< arrayofstrings.length;x++){
//alert(&quot;here&quot;);
//alert((arrayofstrings[x]));
if(arrayofstrings[x] != &quot;&quot;){
//alert(&quot;here2&quot;);
newarray[y] = arrayofstrings[x];
y++;
}
}

//alert(newarray);
TheForm.txtniinhidden1.value = newarray
return (true);
}

</script>




<form method=&quot;POST&quot; action=&quot;Test.asp&quot; language=&quot;JavaScript&quot; name=&quot;FrontPage_Form4&quot; onsubmit=&quot;return Check(this)&quot;>

<% End If %>
<input type=&quot;hidden&quot; name=&quot;System_Level&quot; value=&quot;INDIVIDUAL&quot;><div align=&quot;left&quot;><table border=&quot;0&quot; width=&quot;100%&quot;>
<tr>
<td></td>
</tr>
<TR>

<td align=middle> <TEXTAREA id=MultNiin1 name=MultNiin1 rows=20></TEXTAREA>
<input type=&quot;hidden&quot; id=&quot;txtniinhidden1&quot; name=&quot;txtniinhidden1&quot;>
</td></TR>
<TR>
<td align=&quot;middle&quot; class=&quot;redfonttwelve&quot;>
<P><INPUT id=submit1 type=submit value=Submit name=submit1></P>

</P>
</td></TR></table></div></form></td>
</tr>
</table>
</form>

Thanks for your help,
moom
 
Here's something that will do what you want with the original string. Regular expressions will probably do it more easily, but I haven't worked enough with those to give you an answer:

function convertstring(onestring)
{
var stringarr=onestring.split(' '); //this is a space character
var newstring=stringarr[0];

for (var ni=1;ni<stringarr.length;ni++)
{
newstring += ', ' + stringarr[ni];
}

}
 
trollacious' suggestion will work, or here's a regex solution:
[tt]
newString = sourceString.replace(/\,/g,', ',);
[/tt] =========================================================
if (!succeed) try();
-jeff
 
Jemminger, I am not familiar with regexps but I tried your suggestion and I am getting 'object expected' error. THis is what I did.
I would appreciate your help. Thanks much.

var arrayofstrings;
var newarray;
var newstring;

newarray = new Array();

arrayofstrings = strNIINList.split(&quot;,&quot;);
//alert(arrayofstrings.length)
//alert(arrayofstrings[1]);
y = 0;
for(x=0;x< arrayofstrings.length;x++){
//alert(&quot;here&quot;);
//alert((arrayofstrings[x]));
if(arrayofstrings[x] != &quot;&quot;){
//alert(&quot;here2&quot;);
newarray[y] = arrayofstrings[x];
y++;
}
}


newstring = newarray.replace(/\,/g,', ',);
TheForm.txthidden1.value = newarray
return (true);
}
 
sorry, there's an extra comma:
replace(/\,/g,', ',);


should be
replace(/\,/g,', ');
=========================================================
if (!succeed) try();
-jeff
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top