diff --git a/src/format/index.js b/src/format/index.js index dfd5854e7b..dd24f12bac 100644 --- a/src/format/index.js +++ b/src/format/index.js @@ -29,7 +29,7 @@ var formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$) // sequences of symbols P, p, and the combinations like `PPPPPPPppppp` var longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g -var escapedStringRegExp = /^'(.*?)'?$/ +var escapedStringRegExp = /^'([^]*?)'?$/ var doubleQuoteRegExp = /''/g var unescapedLatinCharacterRegExp = /[a-zA-Z]/ diff --git a/src/format/test.js b/src/format/test.js index 55dad9c707..d5655712d1 100644 --- a/src/format/test.js +++ b/src/format/test.js @@ -50,6 +50,11 @@ describe('format', function() { assert(format(date, "''h 'o''clock'''") === "'5 o'clock'") }) + it('accepts new line charactor', function() { + var date = new Date(2014, 3, 4, 5) + assert.equal(format(date, "yyyy-MM-dd'\n'HH:mm:ss"), '2014-04-04\n05:00:00') + }) + describe('ordinal numbers', function() { it('ordinal day of an ordinal month', function() { var result = format(date, "do 'day of the' Mo 'month of' yyyy") diff --git a/src/lightFormat/index.js b/src/lightFormat/index.js index ab58e8caa8..0c3f64dde8 100644 --- a/src/lightFormat/index.js +++ b/src/lightFormat/index.js @@ -15,7 +15,7 @@ import subMilliseconds from '../subMilliseconds/index.js' // - . matches any single character unmatched by previous parts of the RegExps var formattingTokensRegExp = /(\w)\1*|''|'(''|[^'])+('|$)|./g -var escapedStringRegExp = /^'(.*?)'?$/ +var escapedStringRegExp = /^'([^]*?)'?$/ var doubleQuoteRegExp = /''/g var unescapedLatinCharacterRegExp = /[a-zA-Z]/ diff --git a/src/lightFormat/test.js b/src/lightFormat/test.js index 0d3c4f3961..0f9af11ad8 100644 --- a/src/lightFormat/test.js +++ b/src/lightFormat/test.js @@ -22,6 +22,14 @@ describe('lightFormat', () => { assert(lightFormat(date, "''h 'o''clock'''") === "'5 o'clock'") }) + it('accepts new line charactor', function() { + var date = new Date(2014, 3, 4, 5) + assert.equal( + lightFormat(date, "yyyy-MM-dd'\n'HH:mm:ss"), + '2014-04-04\n05:00:00' + ) + }) + describe('year', () => { describe('regular year', () => { it('works as expected', () => { diff --git a/src/parse/index.js b/src/parse/index.js index 8693c8cf84..8c0642ab60 100644 --- a/src/parse/index.js +++ b/src/parse/index.js @@ -31,7 +31,7 @@ var formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$) // sequences of symbols P, p, and the combinations like `PPPPPPPppppp` var longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g -var escapedStringRegExp = /^'(.*?)'?$/ +var escapedStringRegExp = /^'([^]*?)'?$/ var doubleQuoteRegExp = /''/g var notWhitespaceRegExp = /\S/ diff --git a/src/parse/test.js b/src/parse/test.js index a5087b9af8..de0f1a3011 100644 --- a/src/parse/test.js +++ b/src/parse/test.js @@ -20,6 +20,15 @@ describe('parse', function() { assert.deepEqual(result, new Date(1986, 3 /* Apr */, 4, 5)) }) + it('accepts new line charactor', function() { + var result = parse( + '2014-04-04\n05:00:00', + "yyyy-MM-dd'\n'HH:mm:ss", + backupDate + ) + assert.deepEqual(result, new Date(2014, 3 /* Apr */, 4, 5)) + }) + describe('era', function() { it('abbreviated', function() { var result = parse('10000 BC', 'yyyyy G', backupDate)