2010-01-11 105 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

相关问题