2

特定の文字列を一致させようとしていますが、一部の特殊文字をエスケープする必要がありますが、まだ正しく一致していません。

私はこれを持っています

 var first=/.+?(?=\[)/i

最初の [

これはビジネス[アカウント]という文字列です

ビジネスを照合してから、アカウントも照合する必要があります。後でこれらを使用してオブジェクト表記を取得するために使用するプラグイン用です。すべての要素には異なる属性があります。

4

2 に答える 2

2

これほど単純なものでは、先読みは実際には必要ありません。次のような文字クラスを使用してみてください。

var first = /[^[]+/

これは、 以外 の任意の文字の 1 つ以上と一致し[ます。

これを のような文字列の両方の部分に一致する正規表現に変換したい場合は、次のよう"business[account]"にしてください。

/([^[]+)\[([^\]]+)\]/

これは、グループ 1 でキャプチャされた以外 の 1 つ以上の文字の後に が続き、グループ 2 でキャプチャされた以外の 1 つ以上の文字が続き、その後に が続くものと一致します。[[ ]]

例えば

console.log(/([^[]+)\[([^\]]+)\]/.exec("business[account]"));
// ["business[account]", "business", "account"]
于 2013-10-12T03:42:35.687 に答える
2

もうすぐそこです。必要なものに一致するようにグループを(括弧で)追加するだけです:

var m = /(.+?)\[(.+?)\]/.exec("business[account]");
console.log("variable: " + m[1], "index: " + m[2]);
于 2013-10-12T03:43:06.843 に答える