diff --git a/index.js b/index.js index 7bcc46a..6401f87 100755 --- a/index.js +++ b/index.js @@ -26,7 +26,7 @@ module.exports = postcss.plugin('postcss-px-to-viewport', function (options) { // Not anything inside url() // Any digit followed by px // !singlequotes|!doublequotes|!url()|pixelunit - var pxRegex = new RegExp('"[^"]+"|\'[^\']+\'|url\\([^\\)]+\\)|(\\d*\\.?\\d+)' + opts.unitToConvert, 'ig') + var pxRegex = new RegExp('"[^"]+"|\'[^\']+\'|url\\([^\\)]+\\)|(\\d*\\.?\\d+)' + opts.unitToConvert, 'g') return function (css) { diff --git a/spec/px-to-viewport.spec.js b/spec/px-to-viewport.spec.js index 23632e2..628ad85 100644 --- a/spec/px-to-viewport.spec.js +++ b/spec/px-to-viewport.spec.js @@ -57,6 +57,17 @@ describe('value parsing', function() { expect(processed).toBe(expected); }); + + it('should not replace values with an uppercase P or X', function () { + var options = { + propList: ['*'] + }; + var rules = '.rule { margin: 12px calc(100% - 14PX); height: calc(100% - 20px); font-size: 12Px; line-height: 16px; }'; + var expected = '.rule { margin: 3.75vw calc(100% - 14PX); height: calc(100% - 6.25vw); font-size: 12Px; line-height: 5vw; }'; + var processed = postcss(pxToViewport(options)).process(rules).css; + + expect(processed).toBe(expected); + }); }); describe('unitToConvert', function() {