摘要如果要匹配這段字段串,大概會(huì)是這樣一個(gè)正則表達(dá)式const regex = /^\w+(?:,\w+=[\w\u4e00-\u9fa5]+)+\s\w+=\w+(?:,\w+=\w+)*\s\d+$/;const s = "apple,city=山東,color=豬皮紅 number=100,year=2018 1529074637";console.log(regex.test(s)); // true 只考慮了 tag value 有中文的情況,如果 field value 也有可能出現(xiàn)中文,照樣改寫(xiě)就行正則表達(dá)式細(xì)節(jié)規(guī)律其實(shí)題主已經(jīng)總結(jié)出來(lái)了,由這幾個(gè)部分組成 myMeasurement,就是第 1 個(gè)逗號(hào)之前的部分,需要匹配起始位 ^,所以是/^\w+/ 接下來(lái)是逗號(hào)分隔的鍵值對(duì),如果包含了 myMeasurement 之后的逗號(hào),就很有規(guī)律,每一項(xiàng)是/,\w+=\w+/再考慮到值有中文,所以等號(hào)后面的 \w+ 改成 [\w\u4e00-\u9fa5]+,結(jié)果/,\w+=[\w\u4e00-\u9fa5]+/這個(gè)項(xiàng)需要重復(fù) n 次,所以把這個(gè)正則表達(dá)式用 (?: ) 括起來(lái),綴 + 號(hào)表示重復(fù)/(?:,\w+=[\w\u4e00-\u9fa5]+)+/ 接下來(lái)是一個(gè)空格,\s,沒(méi)啥好說(shuō)的 接下來(lái)是另一組鍵值對(duì),跟之前那組不同,這組沒(méi)有起始的逗號(hào),所以先加一個(gè)沒(méi)逗號(hào)的/\