CoffeeScript攻略3.5:清理字串前後的空白符

CoffeeScript Cookbook發表於2011-11-24

清理字串前後的空白符

問題

你想清理字串前後的空白符

方案

使用JavaScript的正規表示式來替換空白符。

要清理字串前後的空白符,可以使用以下程式碼:

"  padded string  ".replace /^\s+|\s+$/g, ""
# => 'padded string'

如果只想清理字串前面的空白符,使用以下程式碼:

"  padded string  ".replace /^\s+/g, ""
# => 'padded string  '

如果只想清理字串後面的空白符,使用以下程式碼:

"  padded string  ".replace /\s+$/g, ""
# => '  padded string'

討論

Opera、Firefox和Chrome中String的prototype都有原生的trim方法,其他瀏覽器也可以新增一個。對於這個方法而言,還是儘可能使用內建方法:

trim = (val) ->
  if String::trim? then val.trim() else val.replace /^\s+|\s+$/g, ""

trim "  padded string  "
# => 'padded string'

語法糖

還可以新增一些類似Ruby中的語法糖,定義如下快捷方法:

String::strip = -> if String::trim? then @trim() else @replace /^\s+|\s+$/g, ""
String::lstrip = -> @replace /^\s+/g, ""
String::rstrip = -> @replace /\s+$/g, ""

"  padded string  ".strip()
# => 'padded string'
"  padded string  ".lstrip()
# => 'padded string  '
"  padded string  ".rstrip()
# => '  padded string'

要想深入瞭解JavaScript執行trim操作時的效能,請參見Steve Levithan的這篇部落格文章


enter image description here

相關文章