Jquery在大写的不间断单词之间添加空格

时间:2012-09-04 01:02:25

标签: jquery

<script type="text/javascript">
var CountryVal;
var StateVal;
$(document).ready(function(){
    $('#ItemCountry').change(function(){
        CountryVal = this.value; // value of the select element
        $("#StateFeeder").html('<img src="/images/mapCountry/AU/ajax-loader.gif" class="IMG-Loading" />');
        $('#StateFeeder').load('/StateFeeder/StateFeeder-Buy.html #StateFeeder-'+CountryVal, function(){
            $('#ItemState').change(function(){
                StateVal = this.value; // value of the select element
                $("#CityFeeder").html('<img src="/images/mapCountry/AU/ajax-loader.gif" class="IMG-Loading" />');
                $('#CityFeeder').load('/Country/'+CountryVal+'/_'+CountryVal+'_suburbs.html #Suburbs-'+StateVal, function(){
                    $('#CityFeeder select').attr('size', '5');
                    $('#CityFeeder select').change(function(){  
                        this.form['CAT_Custom_221342'].value=$(this).val();
                    }); 
                });        
            })
        });
    });
});           
</script>

上面的Jquery会将下拉菜单从其他页面加载到当前页面,并在用户进行选择时将值传递到另一个输入字段。问题是,从远程页面中的#StateFeeder获取的选项值包含以下格式:

<option value="Kabardino-BalkarRepublic">Kabardino-Balkar Republic</option>
<option value="Karachay-CherkessRepublic">Karachay-Cherkess Republic</option>
<option value="KareliaRepublic">Karelia Republic</option>
<option value="KomiRepublic">Komi Republic</option>
<option value="MariElRepublic">Mari El Republic</option>
<option value="MordoviaRepublic">Mordovia Republic</option>

上面的值是不间断的大写单词,我希望它们在下面的大写单词之间用空格格式化(plz保持“ - ”btw单词)当它们被加载到当前页面时,它们是加载后,没有空格的值将用作用户进行onchange操作的ID,然后再进行格式化。非常感谢你:

<option value="Kabardino-Balkar Republic">Kabardino-Balkar Republic</option>
<option value="Karachay-Cherkess Republic">Karachay-Cherkess Republic</option>
<option value="Karelia Republic">Karelia Republic</option>
<option value="Komi Republic">Komi Republic</option>
<option value="Mari El Republic">Mari El Republic</option>
<option value="Mordovia Republic">Mordovia Republic</option>

1 个答案:

答案 0 :(得分:2)

我建议:

$('option').attr('value', function(i, h) {
    return h.replace(/([a-z])([A-Z])/g, '$1 $2');
});

JS Fiddle demo

这有效地查找一个小写字母([a-z]),后跟一个大写字母([A-Z])(匹配两个字母中的每个字母,括号括起每个字母),使用常规字母replace()中的表达式,然后替换小写字母(与其自身)插入一个空格,然后插入大写字母。

在关联的演示中,div元素后面的select会显示option s的已更改HTML。