-1

文字列で単語 customerID 番号を探しています。顧客IDはこの形式にcustomerID{id} なるので、私が持っているいくつかの異なる文字列を見てください

 myVar = "id: 1928763783.Customer Email: test@test.com.Customer Name:John Smith.CustomerID #123456.";
 myVar = "id: 192783.Customer Email: test1@test.com.Customer Name:Rose Vil.CustomerID #193474.";
 myVar = "id: 84374398.Customer Email: test2@test.com.Customer Name:James Yuem.";

理想的には、CustomerID が存在するかどうかを確認できるようにしたいと考えています。もし存在するなら、それが何であるかを知りたいです。正規表現を使用できることはわかっていますが、どのように見えるかわかりません ありがとう

4

3 に答える 3

3
var match = myVar.match(/CustomerID #(\d+)/);
if (match) id = match[1];
于 2012-11-06T00:28:58.577 に答える
0

私は構文に 100% 精通しているわけではありませんが、「(CustomerID #([0-9]+).)」と言えます。

これはあなたが探しているものの有効な正規表現だと思います。文字列に「CustomerID」の後にスペース、数字記号、そして一連の数字が続くかどうかを確認します。数字を角かっこで囲むことにより、何かが見つかった場合に角かっこ 2 を参照することでそれらをキャプチャできます。

この構文で括弧またはピリオドの前に \ が必要かどうかはわかりません。申し訳ありませんが、これ以上の助けにはなりませんが、これが何らかの形で役立つことを願っています。

于 2012-11-06T00:35:46.410 に答える
0

これを試して、ニーズに合わせて機能させます。

// case-insensitive regular expression (i indicates case-insensitive match)
// that looks for one of more spaces after customerid (if you want zero or more spaces, change + to *)
// optional # character (remove ? if you don't want optional)
// one or more digits thereafter, (you can specify how long of an id to expect with by replacing + with {length} or {min, max})
var regex = /CustomerID\s+#?(\d+)/i;
var myVar1 = "id: 1928763783.Customer Email: test@test.com.Customer Name:John Smith.CustomerID #123456.";
var match = myVar1.match(regex);
if(match) { // if no match, this will be null
    console.log(match[1]); // match[0] is the full string, you want the second item in the array for your first group
}
于 2012-11-06T00:37:38.157 に答える