web-dev-qa-db-ja.com

javascriptのStringUtils

私はJavaのcommons-langの StringUtils のようなjsライブラリを探しています。これには文字列を操作するための多くの一般的なメソッドが含まれています。

といった:

  • IsEmpty/IsBlank-文字列にテキストが含まれているかどうかを確認します
  • トリム/ストリップ-先頭と末尾の空白を削除します
  • 等しい-2つの文字列をnullセーフで比較します
  • startupWith-文字列がプレフィックスnull-safeで始まるかどうかを確認します
  • extendsWith-文字列が接尾辞null-safeで終わるかどうかを確認します
  • IndexOf/LastIndexOf/Contains-nullセーフなインデックスのチェック
  • IndexOfAny/LastIndexOfAny/IndexOfAnyBut/LastIndexOfAnyBut-インデックス-文字列のセットのいずれかの
  • ContainsOnly/ContainsNone/ContainsAny-文字列にはこれらの文字のみ/なし/いずれかが含まれます
  • Substring/Left/Right/Mid-nullセーフな部分文字列の抽出
  • SubstringBefore/SubstringAfter/SubstringBetween-他の文字列に関連する部分文字列の抽出
  • Split/Join-文字列を部分文字列の配列に分割し、その逆も同様です。
  • 削除/削除-文字列の一部を削除します
  • 置換/オーバーレイ-文字列を検索し、ある文字列を別の文字列に置き換えます
  • Chomp/Chop-文字列の最後の部分を削除します
  • LeftPad/RightPad/Center/Repeat-文字列を埋めます
  • UpperCase/LowerCase/SwapCase/Capitalize/Uncapitalize-文字列の大文字と小文字を変更します
  • CountMatches-ある文字列が別の文字列に出現する回数をカウントします
  • IsAlpha/IsNumeric/IsWhitespace/IsAsciiPrintable-文字列内の文字をチェックします
  • DefaultString-null入力文字列から保護します
  • Reverse/ReverseDelimited-文字列を反転します
  • 省略形-省略記号を使用して文字列を省略します

配列/日付などの他のメソッドが含まれているとよいでしょう。

19
Freewind

String utils -- nderscore.string

オブジェクト/配列ユーティリティ- アンダースコア

日付ユーティリティ- Moment.js

17
timrwood

さあ行こう:

IsEmpty

str.length === 0

IsBlank

str.trim().length === 0

トリム

str.trim()

等しい

str1 === str2

startsWith

str.indexOf( str2 ) === 0

IndexOf

str.indexOf( str2 )

LastIndexOf

str.lastIndexOf( str2 )

含む

str.indexOf( str2 ) !== -1

部分文字列

str.substring( start, end )

str.slice( 0, len )

str.substr( i, len )

str.slice( -len, str.length )

など...(続行する必要がありますか?)

11
Šime Vidas

DOMにはJavascriptの基本メソッドとJQueryの両方を使用し、日付には moment.js を使用します。

これを読んでください: tilsライブラリ ブラウザ間の互換性を探しているなら。

または、Apacheのような独自のcommons-langを作成することもできます。

1
Redger

私は常にJavaバックエンドとJavaScriptフロントエンドを切り替えているので、StringUtilsメソッドを盲目的に使用し、それについて考えさえしないことは非常に理にかなっています。誰かがApacheStringUtilsメソッドのすべてをJavaScriptに移植するのに時間がかかるでしょう;-)

これが私の貢献です:

  String.prototype.startsWith = function(prefix) {
    return this.indexOf(prefix,0) === 0;
  };

  String.prototype.endsWith = function(suffix) {
    return this.indexOf(suffix, this.length - suffix.length) !== -1;
  };

  String.prototype.substringBefore = function(str) {
    var idx = this.indexOf(str);
    if( idx!==-1 ) {
      return this.substr(0,idx);
    }
    return this;
  };

  String.prototype.substringBeforeLast = function(str) {
    var idx = this.lastIndexOf(str);
    if( idx!==-1 ) {
      return this.substr(0,idx);
    }
    return this;
  };

  String.prototype.substringAfter = function(str) {
    var idx = this.indexOf(str);
    if( idx!==-1 ) {
      return this.substr(idx+str.length);
    }
    return this;
  };

  String.prototype.substringAfterLast = function(str) {
    var idx = this.lastIndexOf(str);
    if( idx!==-1 ) {
      return this.substr(idx+str.length);
    }
    return this;
  };

  // left pad with spaces (or the specified character) to this length 
  String.prototype.leftPad = function (length,c) {
    c = c || " ";
    if( length <= this.length ) return this;
    return new Array(length-this.length+1).join(c) + this;
  };

  // right pad with spaces (or the specified character) to this length 
  String.prototype.rightPad = function (length,c) {
    c = c || " ";
    if( length <= this.length ) return this;
    return this + new Array(length-this.length+1).join(c);
  };
1
Axel Podehl