我想做一个过滤器,其中有很多选项,被列在过滤器的顶部,现在,我试图添加国家,我决定使用正则表达式。但是我无法让它工作,出于某种原因,它取代了字符串的中间而不是开始。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 –
无关的一面注意:您可能想看看[''