字符串是否包含价格?

时间:2016-11-28 01:10:34

标签: javascript regex

我想检查字符串是否为"计算机价格为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?

2 个答案:

答案 0 :(得分: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)

全局修饰符应该有用。在最后一个之后添加g /

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

应与测试字符串中的所有实例匹配。