3 回答
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊
如果它不必是正則表達(dá)式:
var str2 = str2.split(",")[1].trim();或者
var str2 = str2.split(", ")[1];TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊
您的正則表達(dá)式與您需要的不匹配,因?yàn)?/p>
(?<= )匹配空格后的位置,然后([^,]+)將逗號(hào)以外的任何一個(gè)或多個(gè)字符捕獲到第 1 組中。
在類似 的字符串SomeCodeHere Los Angeles City, California, USA中,匹配出現(xiàn)在第一個(gè)空格之后并上升到第一個(gè)逗號(hào),即Los Angeles City.
似乎您可以使用非正則表達(dá)式解決方案,例如user984003 建議,但如果您的SomeCodeHere orSomeAddressHere或或SecondAddressHere也可能包含逗號(hào),您可以考慮獲取最后兩個(gè)逗號(hào)之間的值:
/[^\s,][^,]*(?=,[^,]*$)/
請(qǐng)參閱正則表達(dá)式演示。
細(xì)節(jié)
[^\s,]- 除空格和逗號(hào)以外的字符[^,]*- 除逗號(hào)外的 0+ 個(gè)字符(?=,[^,]*$)- 一個(gè)正向前瞻,需要一個(gè)逗號(hào),然后是除逗號(hào) ([^,]*) 之外的 0+ 個(gè)字符,直到字符串 ($) 的末尾。
JS 演示:
var str2 = "SomeCodeHere Los Angeles City, California, USA";
var match = str2.match(/[^\s,][^,]*(?=,[^,]*$)/);
if (match) console.log(match[0]);
TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超7個(gè)贊
你可以試試這個(gè)。
這與你的有點(diǎn)不同,我同時(shí)使用了向前看和向后看
var str2 = "SomeCodeHere Los Angeles City, California, USA";
var str2 = str2.match(/(?<=, ).+(?=,)/)[0]
console.log(str2) // California
添加回答
舉報(bào)
