簡體   English   中英

使用javascript中的regex用下划線替換每個前導和尾隨空格

[英]Replace each leading and trailing whitespace with underscore using regex in javascript

var str = '  Some string    ';
var output = str.replace(/^\s|\s(?=\s*$)/g , '_');

輸出應該如下所示

'___Some string____'

此代碼適用於尾隨空格,但所有前導空格都只用一個下划線替換。

這個工作的php正則表達式是: /\\G\\s|\\s(?=\\s*$)/

不漂亮,但完成工作

var str = "  Some string    ";
var newStr = str.replace(/(^(\s+)|(\s+)$)/g,function(spaces){ return spaces.replace(/\s/g,"_");});

有效,但我不喜歡它:

var str = "  some string  ";
var result = str.replace(/^\s+|\s+$/g, function(m) {
    return '________________________________________'.substring(0, m.length);
});

或者更靈活:

var str = "  some string  ";
var result = str.replace(/^\s+|\s+$/g, function(m) {
    var rv = '_',
        n;
    for (n = m.length - 1; n > 0; --n) {
        rv += '_';
    }
    return rv;
});

當然,這可以改進。

但我更喜歡epascarello的答案

另一個注冊表

var str = "  asdf       "
str.replace(/^[ ]+|[ ]+$/g,function(spc){return spc.replace(/[ ]/g,"_")})
//"__asdf_______" 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM