つの関連する観察ここで「カンマでリスト項目を処理することができるはず」というご要望を失敗します、が、 CFリスト自体がデリミタ文字もデータの一部であることをサポートしていないということです。 "Smith、John"、 "Doe、Jane"のサンプル "list"は4つの要素のカンマで区切られた "Smith"、 "John"、 "Doe"、 "Jane"のカンマ区切りのリストです。 listFindNoCase()
は、実際にはCFの観点からの要件を満たしておらず、CFのネイティブもあなたの要件を満たしていないので、をはCFのlistFindNoCase()
のJS equivが必要です。カンマを埋め込んだ要素を処理するには、別のcharを区切り文字として使用する必要があります。
TBH、CFリストは、(上に挙げた理由のため)ちょっとしたゴミであり、非常に日常的な状況では本当に役に立ちます。 b)は、配列を介してとにかくうまく機能しません。 文字列ベースのリストを使用していないがパフォーマンスの第一歩になります(これはJSと同じようにCFにも当てはまります:CFの文字列ベースのリストはそうではありません)。すべての演奏家)。
私の最初の答えは次のようなものです:リストを使うことからあなたの要件を修正し、代わりに配列を使うべきだと思います。
これを念頭に置いて、データはどのようにJSに到達していますか?あなたは、文字列ベースのリストを使用してどのように立ち往生していますか?そうでない場合は、単純にしないでください。ソースデータが文字列ベースのリストの場合は、最初に配列に変換する位置にありますか? CFの観点からは、デリミタとデータの両方をカンマにすることはできません。また、クォートされたカンマがデータであり、引用符で囲まれていないカンマが区切り文字であることを識別するためのコードを書く作業を少し前から行っています。あなたはそのようなことに対処するためにCSV解析アルゴリズムを見てみるべきです。
ただし、デリミタ(パイプやセミコロン、データに表示されないものなど)を変更することができれば、それをCFの配列(listToArray() JS内でsplit()を実行することができます)。次に、他の人が言ったように、indexOf()を使うことができます。 SHの便宜上
TS「n」を笑い、あなたが文字列で立ち往生している場合、 - あなたは区切り文字を変更することができます提供 - あなたがこれを行うことが、私は思う:!見つける
- 使用
indexOf()
を文字列中の部分文字列の最初の一致の位置にある場合は、区切り文字で区切られた部分文字列、または文字列の先頭から区切り文字に、区切り文字から区切り文字にマッチする正規表現を使用する必要があります中間の区切り文字を持たない文字列の終わり。必要があれば正規表現を思いつくことができます。これはまだリストを意識しているわけではありませんが、文字列のどこにあるのかはわかります。
- 元の文字列の部分文字列を先頭から、返された位置
indexOf()
に移動します。
- その上で使用
split()
、デリミタで分離
- 続く配列の長さは、一致がにあった元の
list
位置であろう。
しかし、私はあなたがではないをしなければならないことを強調します。最初から文字列の代わりに配列を使用します。
あなたはあなたに*文字列*があると言っていますか?基本的には、CSV文字列ですか? JavaScript配列を持っていますか? – aquinas
indexOfがすぐに使えるようになると、複雑なループや正規表現の文字列で私の頭を満たしていたことに恥ずかしい思いをします。私はindexOfが配列のためだけに働いていると仮定しました:P – eterps
JSのRegExはむしろ単純だと思います。あなたが速く言うとき、それは速く走っていることを意味しますか、それとも速く書くことができますか? – Henry