インテリジェントストリングの略語
コアポイント
-
JavaScriptの
- 関数は、文字列を指定された最大長に知的に短縮し、単語の中央で壊れないようにし、不要なスペースを削除します。
abbreviate()
この関数は、略語文字列の最後に追加された元の入力文字列、最大出力長、およびオプションのサフィックスの3つのパラメーターを取ります。接尾辞が定義されていない場合、デフォルトは「...」であり、略語を示します。 - この関数は、フォーム入力の処理、カスタムツールチップの作成、Webベースのメールリストにメールのトピックの表示、Ajaxを介して送信される前処理データなど、文字列の長さを制限する必要があるシナリオで使用できます。
- この関数の有効性は、入力文字列を1つの単語に分割し、最大長に合うようにできるだけ多くの単語を再結合できることです。また、入力を前処理して、余分なスペースを削除します。
- この記事では、主な関数がその名前として、文字列を指定された長さに短縮するシンプルで効率的なJavaScript関数を導入します。単語の中央で切り捨てられず、ストリングを前処理して余分なスペースを削除することが保証されます。以下は、 関数のコードです。
この関数は、略語文字列の最後に追加された元の入力文字列、最大出力長、およびオプションのサフィックスの3つのパラメーターを取ります。接尾辞が定義されていない場合、デフォルトは「...」(1つのスペースの後に3つのドットが続く)です。 abbreviate()
abbreviate
function abbreviate(str, max, suffix) { if ((str = str.replace(/^\s+|\s+$/g, '').replace(/[\r\n]*\s*[\r\n]+/g, ' ').replace(/[ \t]+/g, ' ')).length <= max) { return str; } var abbr = '', str = str.split(' '), suffix = (typeof suffix !== 'undefined' ? suffix : ' ...'), max = (max - suffix.length); for (var len = str.length, i = 0; i < len; i++) { if ((abbr + str[i]).length <= max) { abbr += str[i] + ' '; } else { break; } } return abbr.replace(/[ ]$/g, '') + suffix; }
この関数は、単純な
式に代わるよりスマートな代替品として、文字列の長さを制限する必要があるシナリオで使用できます。フォーム入力の処理、カスタムツールチップの作成、Webベースのメーリングリストにメールのトピックの表示、Ajaxを介して送信されるプリプセッシングデータなど、多くのアプリケーションがあります。たとえば、文字列を100文字に制限してデフォルトのサフィックスを追加するには、次のように呼びます。 これは、この
式:と概念的に同等です
substr
<
str = abbreviate(str, 100);
で指定されている最大長よりも
str = str.substr(0, 96) + " ...";
function abbreviate(str, max, suffix) { if ((str = str.replace(/^\s+|\s+$/g, '').replace(/[\r\n]*\s*[\r\n]+/g, ' ').replace(/[ \t]+/g, ' ')).length <= max) { return str; } var abbr = '', str = str.split(' '), suffix = (typeof suffix !== 'undefined' ? suffix : ' ...'), max = (max - suffix.length); for (var len = str.length, i = 0; i < len; i++) { if ((abbr + str[i]).length <= max) { abbr += str[i] + ' '; } else { break; } } return abbr.replace(/[ ]$/g, '') + suffix; }
関数の仕組み
abbreviate
関数のキーは、入力文字列を単語に分割し、最大長に合うようにできるだけ多くの単語を再結合する機能です。より効率的になるには、単語間のセパレーターが予測可能であることを確認する必要があります。最も簡単な方法は、内部空間を最小限に抑えることです。新しいラインとタブをスペースに変換し、次に連続したスペースを縮小して、各内部スペースが空間になるようにすることです。 。もちろん、これに対処する他の方法もあります。たとえば、単語の間に見られるすべての異なるタイプのキャラクターを考慮したセグメンテーションのためのより柔軟な正規表現を定義できます。正規表現には単語の境界文字(「B」)もありますので、同様に使用できます。しかし、特にユーザーの入力を処理するときに、スペース前処理自体が有用であることがわかりました。また、単語の境界で分割しても、ダッシュ、ドット、コンマ、およびほとんどの特殊文字が実際に単語の境界と見なされるため、予想される結果は生成されません。しかし、キャラクターのスペースが続いていない限り、句読点で単語を分割することは不適切だと思います。したがって、関数の最初の仕事は、スペースの前処理を行うことです。その後、結果がで指定されている最大値よりも既に短い場合、直接返すことができます。
str = abbreviate(str, 100);
最初の条件がない場合、指定された最大値に接尾辞の長さを考慮に入れる必要があるため、略語の出力が得られます。
str = str.substr(0, 96) + " ...";
最初の条件を追加すると、変更されていない出力が生成されます。
この時点で戻っていない限り、略式文字列をコンパイルし続けます - 入力文字列をスペースごとに分割して単語を作成し、略語が短い限り各単語空間ペアを繰り返し再編成します指定された最大長より。必要なものをコンパイルしたら、反復を破り、略語文字列の端から残りのスペースをトリミングし、接尾辞を追加して結果を返すことができます。残りのスペースを右端からトリミングしてから、デフォルトの接尾辞で追加すると、少し無駄に思えますが、これによりスペースなしで接尾辞を入力できます。abbreviate("<p>One two three four five</p>", 15, "");
<p>One two>
これは、過剰なスペースを削除するために入力を前処理するシンプルだがスマートな文字列の略語関数です。私の経験では、両方の要件が通常同時に表示されるため、このように機能するようにこの機能を開発しました。
(スペースの制限のため、FAQパーツはここで省略されています。必要に応じて、FAQパーツの擬似オリジナルバージョンを個別に提供できます。)
以上がインテリジェントストリングの略語の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

この記事の視差スクロールと要素のアニメーション効果の実現に関する議論では、Shiseidoの公式ウェブサイト(https://www.shisido.co.co.jp/sb/wonderland/)と同様の達成方法について説明します。

JavaScriptを学ぶことは難しくありませんが、挑戦的です。 1)変数、データ型、関数などの基本概念を理解します。2)非同期プログラミングをマスターし、イベントループを通じて実装します。 3)DOM操作を使用し、非同期リクエストを処理することを約束します。 4)一般的な間違いを避け、デバッグテクニックを使用します。 5)パフォーマンスを最適化し、ベストプラクティスに従ってください。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

フロントエンドのVSCodeと同様に、パネルドラッグアンドドロップ調整機能の実装を調べます。フロントエンド開発では、VSCODEと同様のVSCODEを実装する方法...
