2013-06-02 27 views
0

我有一個字符串在JavaScript這樣的:刪除子的JavaScript

frmSearch=FeeType=RecordingSpend:LoginID=:PersonCalled=:FeeAmount=22.234567:Paid= 

我想從使用Regexstring.replace此字符串中刪除:FeeAmount=22.234567一部分。

它可以是空的是這樣的:

frmSearch=FeeType=RecordingSpend:LoginID=:PersonCalled=:FeeAmount=:Paid= 

,或者它可以包含任何值

我嘗試這樣做:

變種STR = frmSearch.substr(frmSearch.indexOf(」 :FeeAmount「), frmSearch.indexOf(」:Paid =「));

我該如何使用正則表達式?

+3

那你試試? – Prinzhorn

+0

我一直在嘗試substring和string.replace組合,但他們不工作 – DotnetSparrow

+1

@DotnetSparrow:顯示努力,所以人們可以幫助你找出你出錯的地方(所以這看起來不像是「請寫這個對我來說「問題)。 –

回答

4
var frmSearch = "FeeType=RecordingSpend:LoginID=:PersonCalled=:FeeAmount=22.234567:Paid="; 
frmSearch = frmSearch.replace(/(^|:)FeeAmount=[^:]*/,'$1FeeAmount='); 

...將字符串中離開FeeAmount=。要完全刪除它:

frmSearch = frmSearch.replace(/(^|:)FeeAmount=[^:]*/,''); 
+1

我的理解是,問題的第二個例子是第二個可能的輸入,而不是預期的輸出。 – jcsanyi

+0

@nnnnn這是什麼意思(^ | :)和[^:] *? – DotnetSparrow

+1

有很多[JS正則表達式文檔](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions)可用。 – nnnnnn

2

這個怎麼樣?

var input = 'frmSearch=FeeType=RecordingSpend:LoginID=:PersonCalled=:FeeAmount=22.234567:Paid='; 
var output = input.replace(/:FeeAmount=[0-9.]*/, ''); 
0

據的問題,正則表達式匹配規則可以

':FeeAmount=[^:]*'