有一個(gè)字符串,里面都是用',(逗號(hào))'隔開的數(shù)字,只有一個(gè)數(shù)字出現(xiàn)了1次,其他所有數(shù)字都出現(xiàn)了2次。我如何通過正則匹配或者替換的方式,提取出這個(gè)只出現(xiàn)過1次的數(shù)字。
例如:
1.var一個(gè)字符串str和正則表達(dá)式re
var str = '112,112,1,1,3,3,234,234,4,22,22'; var re;
2.如何通過正則匹配或者替換,改變str的值為'4'
str = str.match(re); 或者 str = str.replace(re,'');//想讓str值為'4'
擁有18年軟件開發(fā)和IT教學(xué)經(jīng)驗(yàn)。曾任多家上市公司技術(shù)總監(jiān)、架構(gòu)師、項(xiàng)目經(jīng)理、高級(jí)軟件工程師等職務(wù)。 網(wǎng)絡(luò)人氣名人講師,...
var?str?=?'112,112,1,1,3,3,234,234,4,22,22'; str?+=?','; var?result?=?str.replace(/(\d+\,)\1+/g,?'');?//?匹配連續(xù)多個(gè)'ddd,' console.log(result);?//?'4,' result?=?result.replace(/\,$/,?'');?//?去掉結(jié)尾',' console.log(result);?//?'4'
正則匹配需要視實(shí)際情況而定,比如說:
var?pattern1?=?/\d+(?!,)$/g; var?pattern2?=?/\d+$/g; var?str?=?'112,112,1,1,3,3,234,234,4'; console.log(str.match(pattern2));??//["4"] 或者直接這樣: str.replace(/\d+,/g,?'');??//'4' 更改題目后: 如果說其他所有數(shù)字都出現(xiàn)了2次都是挨著的,樓下的寫法OK。 str?+=?','; str.replace(/(d+,)1+/g,?'').replace(/,$/,?''); 如果不挨著,就不行,那就先處理下 var?arr?=?str.split(','); arr.sort(); str?=?arr.join(','); str?+=?','; str.replace(/(d+,)1+/g,?'').replace(/,$/,?'');