我想做一個過濾器,其中有很多選項,被列在過濾器的頂部,現在,我試圖添加國家,我決定使用正則表達式。但是我無法讓它工作,出於某種原因,它取代了字符串的中間而不是開始。RegEx Javascript替換?
JS代碼:
function countryCheck(object) {
var filter = document.getElementById("search_filter");
var re = new RegExp("<b>Location<\/b>:\s[a-zA-Z\s]+\s\|\s");
filter.innerHTML = filter.innerHTML.replace(re, ("<b>Location</b>: " + object.value.replace(" ", "") + " | "));
}
HTML代碼:
<div id='search_filter'><b>Filter</b>: <b>Location</b>: Anywhere | <b>Player Slots</b>: >=0/>=0</div>
<br />
<select class='select' style='width:100%;' onchange='countryCheck(this);'>
<option>Anywhere</option>
<option>Europe</option>
<option> Sweden</option>
<option> Germany</option>
<option> United Kingdom</option>
<option> France</option>
<option>North America</option>
<option> Canada</option>
<option> United States</option>
<option> Mexico</option>
</select>
的jsfiddle出什麼問題是:jsFiddle
我試圖讓所以它替換當前<b>Location</b>: [some country] |
與<b>Location</b>: [some other country] |
你爲什麼要用正則表達式來做這件事?爲什麼不給位置值一些'class'或'id'並直接替換內容? – Mathletics
您的問題是\ /和\ s請參閱:http://stackoverflow.com/questions/16611956/javascript-regex-not-detecting/16612041 –
無關的一面注意:您可能想看看[''