2016-11-28 54 views
1

我想檢查一下諸如「電腦成本$ 2,000」這樣的字符串是否包含價格。字符串是否包含價格?

我微微modified this regex適合我的需要和當前的正則表達式,我使用看起來像這樣:

var regexTest = /(?=.)^\$(([1-9][0-9]{0,2}(,[0-9]{3})*)|[0-9]+)?(\.[0-9]{1,2})?$/; 

如果我這樣做regexTest.test("$2,000");它將返回true。但是,如果我將其他字符添加到字符串,如regexTest.test("The computer costs $2,000");它將返回false。

我應該如何修改正則表達式代碼以便爲第二個示例返回true?

回答

1

在正則表達式中刪除您的^。試試這個

此外,我建議刪除$以及因此價格這樣$5.000,00 words將返回true

var regexTest = /(?=.)\$(([1-9][0-9]{0,2}(,[0-9]{3})*)|[0-9]+)?(\.[0-9]{1,2})?/; 
 

 
console.log(regexTest.test('computer $5,000.00')); 
 
console.log(regexTest.test('$5,000.00')); 
 
console.log(regexTest.test('$5,000.00 that was computer price')); 
 
console.log(regexTest.test('computer 5,000.00'));

+1

也許是太更新與故障情況下的片段。 –

+0

編輯。謝謝@ A.J – RizkiDPrast

+0

@RizkiDPrast正是我在找的東西。它非常完美,非常感謝! –

0

全局修飾符應該工作。添加g後終於/

var regexTest = /(?=.)^\$(([1-9][0-9]{0,2}(,[0-9]{3})*)|[0-9]+)?(\.[0-9]{1,2})?$/g; 

應該匹配與測試字符串內的所有實例。

相關問題