【问题标题】:Replace spaces javascript替换空格 javascript
【发布时间】:2013-05-03 16:33:44
【问题描述】:

我创建了一个位置以邮政编码形式。唯一的麻烦是邮政编码的结果可能包含 2 个或更多空格。我想确保不超过一个空格。换句话说,>1 个空格变为 1 个空格。

<!DOCTYPE HTML>
<head>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.3.min.js"></script>
    <script type="text/javascript">
        function showLocation(position) {
            var latitude = position.coords.latitude;
            var longitude = position.coords.longitude;
            $.getJSON('http://www.uk-postcodes.com/latlng/' + position.coords.latitude + ',' + position.coords.longitude + '.json?callback=?', null, gotpostcode);
        }

        function errorHandler(err) {
            if(err.code == 1) {
                alert("Error: Access is denied!");
            } else if( err.code == 2) {
                alert("Error: Position is unavailable!");
            }
        }


        function gotpostcode(result)
        {
            var postcode = result.postcode;
            $("#postcodegoeshere").val(postcode);
        }

        function getLocation(){
            if(navigator.geolocation){
                // timeout at 60000 milliseconds (60 seconds)
                var options = {timeout:60000};
                navigator.geolocation.getCurrentPosition(showLocation, 
                                                         errorHandler,
                                                         options);
            } else {
                alert("Sorry, browser does not support geolocation!");
            }
        }
    </script>
</head>
<html>
    <body>
        <form>
            <input type="button" onclick="getLocation();"  
                                 value="Get Location"/>
        </form>
        <div>
            <input id='postcodegoeshere' name='xxx' type='text' value='' />
        </div>
    </body>
</html>

【问题讨论】:

标签: javascript jquery


【解决方案1】:

使用正则表达式并将/[ ]+/g 替换为空格。

var str = "this     has    a lot of     whitespaces";
var str = str.replace(/[ ]+/g, " ");
console.log(str); 
//this has a lot of whitespaces

正则表达式解释:

  • [ ] 括在括号中的字符“空格”以提高可读性 - 您不需要它们。
  • + 重复 1 次或多次
  • /g 不只是一次,而是在整个字符串中全局

【讨论】:

    【解决方案2】:

    你可以这样做:

    str = str.replace(/ {2,}/g, ' ');
    

    【讨论】:

    • 从技术上讲,\s 将替换制表符,后跟换行符,后跟空格等,因此不仅仅是 OP 想要的空格。
    • 是的,这应该是 OP 想要的。 :-)
    【解决方案3】:
    str_replace ( "  " , " " , $string )
    

    【讨论】:

    • 1.这是 PHP - 2。这会将 my string[SPACE][SPACE][SPACE][SPACE]hey 转换为 my string[SPACE][SPACE]he,因此它不会像 preg_replace("/[ ]+/", " ", $string) 那样工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多