我想检查字符串是否为"计算机价格为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?
答案 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;
应与测试字符串中的所有实例匹配。