私はこの文字列を持っています:'foo = bar; this = is; not = necessary'
私はこの結果を得たいと思います:{"name" : "foo", "value" : "bar"}
; の後にあるものは必要ありません。
正規表現を使用する必要があることはわかっていますが、正規表現の仕組みがよくわかりません。
よろしくお願いします。
私はこの文字列を持っています:'foo = bar; this = is; not = necessary'
私はこの結果を得たいと思います:{"name" : "foo", "value" : "bar"}
; の後にあるものは必要ありません。
正規表現を使用する必要があることはわかっていますが、正規表現の仕組みがよくわかりません。
よろしくお願いします。
あなたが使用することができます:
var values='foo = bar; this = is; not = necessary'.split('; ')[0].split(' = ');
var obj={"name" : values[0], "value" : values[1]}
このようにあなたはします:
'foo = bar; this = is; not = necessary'.split('; ')、を返します['foo = bar','this = is','not = necessary']'foo = bar; this = is; not = necessary'.split(';')[0]、'foo = bar''foo = bar; this = is; not = necessary'.split(';')[0].split(' = ')。['foo','bar']正規表現を使用して特定の文字列を検索し、文字foo = bar列の一部に一致する指定された名前を検索する方法:
function getNameValuePair(string, needle) {
    if (!string || !needle) {
        return false;
    }
    else {
        var newNeedle = needle + '\\s+\\=\\s+\\w+',
            expr = new RegExp(newNeedle),
            parsed = string.match(expr).join(),
            parts = parsed.split(/\s+\=\s+/),
            returnObj = {'name' : parts[0], 'value' : parts[1]};
        return returnObj;
    }
}
var string = 'foo = bar; this = is; not = necessary',
    nameValueObj = getNameValuePair(string, 'foo');
console.log(nameValueObj);
もちろん、これは要件に合わせて調整することもできます。
ただし、次のとおりです。
false。needle(この場合は 'foo')、1 つまたは複数の空白単位、1=文字、1 つまたは複数の空白文字で構成される正規表現パターンを作成します。空白が常に存在するとは限らない場合は、変更する方がよい場合がありますnewNeedle = needle + '\\s*\\=\\s*\\w+'(+一致は「1 つ以上」、*一致は「0 以上」)。parsed変数に格納します。parsedし、0 個以上の空白の後に 0 個以上の空白が続くパターンで効果的に分割し、分割された=部分をparts配列変数に格納します。partsます。2 行で 1 つの RegExp を作成するのはばかげていたので、上記を少し更新しました。
function getNameValuePair(string, needle) {
    if (!string || !needle) {
        return false;
    }
    else {
        var expr = new RegExp(needle + '\\s+\\=\\s+\\w+'),
            parsed = string.match(expr).join(),
            parts = parsed.split(/\s+\=\s+/),
            returnObj = {'name' : parts[0], 'value' : parts[1]};
        return returnObj;
    }
}
var string = 'foo = bar; this = is; not = necessary',
    nameValueObj = getNameValuePair(string, 'foo');
console.log(nameValueObj);
参考文献: