2010-01-11 65 views
-1

CSS:如何從我的字符串中刪除最後一個逗號,並用Javascript中的句號替換它?

.dynamicDiv { 
    width:200px; 
    border:solid 1px #c0c0c0; 
    background-color:#e1e1e1; 
    font-size:11px; 
    font-family:verdana; 
    color:#000; 
    padding:5px; 
    } 

的Javascript:

//create array 
    var myNames=new Array(); 
    //var nameString=document.getElementById(myNames.toString()) 

    function addToDiv() 
    { 
     //1) add name to div 
     document.getElementById('divName').innerHTML = document.getElementById('divName').innerHTML + document.getElementById('enter_name').value + "<br>"; 
     //2) now add the value to an array 
     myNames.push(document.getElementById('enter_name').value); 
     //strHTML = document.getElementById('divName').innerHTML + document.getElementById('enter_name').value + "<br>"; 
     //document.getElementById('divName').innerHTML = strHTML; 
    } 

    function displayMessage() 
    { 
     //debugger; 
     var strMessage = "Welcome to this page "; 

     //loop throught the array and add the element values to strMessage 
     for(i=0;i<=myNames.length-1;i++) 
     { 
      strMessage = strMessage + myNames[i] + ", " 
     } 

     //remove trainling comma 
     //strMessage = strMessage 

     alert(strMessage); 
    } 

    function displayMessagebye() 
    { 
     //debugger; 
     var strMessage = "Thank you for coming to this page "; 

     //loop throught the array and add the element values to strMessage 
     for(i=0;i<=myNames.length-1;i++) 
     { 
      strMessage = strMessage + myNames[i] + ", " 
     } 

     //remove trainling comma 
     //strMessage = strMes 
     //strMessage = strMessage.substr(
     alert(strMessage); 
    } 

HTML:

<div class="dynamicDiv"> 
    <input type="text" name="enter_name" id="enter_name" /> 
    <input name="button" id="button" value="Submit" type="button" onclick="addToDiv();"/> 
</div> 

<div id="divName" class="dynamicDiv" style="margin:10px 0px;"> 
<h2>Names List</h2><p>Names of person you've already added.</p> 
</div> 
<div class="dynamicDiv"><input type="button" onclick="displayMessagebye();" value="Loop" /></div> 
<div id="loop" > </div> 
<div class="dynamicDiv"><input type="button" onclick="displayMessage();" value="String" /></div> 
<div id="string" > </div> 
+2

這是不是很清楚你在問什麼。再試一次? – danben 2010-01-11 15:12:33

+0

粘貼看似任意的代碼並沒有給出你的問題的細節。你的意思是「逗號」而不是「普通」?我要添加一個關於englishoverflow.com的評論,但那將意味着什麼。 – JoshNaro 2010-01-11 15:27:51

回答

4

您可以取代過去的 「 」有「。」通過:

strMessage.replace(/, $/, ".") 
+0

非常感謝! – 2010-01-11 15:52:08

2

爲什麼不只是沒有把它放在那裏擺在首位?

即在此塊:

for(i=0;i<=myNames.length-1;i++) 
{ 
    strMessage = strMessage + myNames[i] + ", " 
} 

只是檢查我們是否是在列表的末尾,把一段有INB地方逗號:

for(i=0;i<=myNames.length-1;i++) 
{ 
    strMessage = strMessage + myNames[i] 
    if(i < myNames.length) 
     strMessage += ","; 
    else 
     strMessage = "."; 
} 
0

假設你的意思逗號,不常見,請問String.replace(",[^,]+$",".")有效嗎?

請注意,如果您閱讀良好的文檔,則可以在大多數語言中找到相同類型的功能。

10

您可以使用join加入數組項:

strMessage = myNames.join(", ") 

甚至更​​好:

if (myNames.length <= 1) { 
    strMessage = myNames.join(); 
} else { 
    strMessage = myNames.slice(0, -1).join(", ") + " and " + myNames[myNames.length-1]; 
} 
+0

+1,*儘管*缺少牛津逗號。 – nickf 2010-01-11 15:31:39

+0

@nickf:那牛津逗號的正確用法是什麼?只有在至少三件物品的列表之前?或者你會寫* foo和bar *? – Gumbo 2010-01-11 15:55:23

+0

這也有用,謝謝。 – 2010-01-11 16:03:08

相關問題