我的正则表达式取代函数有什么问题?

时间:2015-10-22 20:48:25

标签: javascript regex string replace



    var storeName = "St. Bob's Store";
    var storeId = storeName.replace(/./g,"").replace(/\s/g, '').replace(/'/g,"")
    $('#storeName').html(storeName)
    $('#storeId').html("(" + storeId + ")")
    
    console.log("Updating " + storeName + "(" + storeId + ")");

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="storeName">Loading</div>
<div id="storeId">loading</div>
&#13;
&#13;
&#13;

storeId我做错了什么?它是空的。

2 个答案:

答案 0 :(得分:2)

你必须逃脱点字符:

storeName.replace(/\./g,"").replace(/\s/g, '').replace(/'/g,"")

否则,您将替换所有内容。

答案 1 :(得分:2)

如果你想匹配“dot”char,你必须逃避它,如下所示:

var storeId = storeName.replace(/\./g,"").replace(/\s/g, '').replace(/'/g,"");

这是一个小提琴:https://jsfiddle.net/e63bq01L/

如果未转义,则该点会匹配字符串中的所有字符