diff --git a/lib/rules/jsx-one-expression-per-line.js b/lib/rules/jsx-one-expression-per-line.js
index b9bacdacee..d733a03d79 100644
--- a/lib/rules/jsx-one-expression-per-line.js
+++ b/lib/rules/jsx-one-expression-per-line.js
@@ -94,8 +94,8 @@ module.exports = {
return;
}
- countNewLinesBeforeContent = (child.raw.match(/^ *\n/g) || []).length;
- countNewLinesAfterContent = (child.raw.match(/\n *$/g) || []).length;
+ countNewLinesBeforeContent = (child.raw.match(/^\s*\n/g) || []).length;
+ countNewLinesAfterContent = (child.raw.match(/\n\s*$/g) || []).length;
}
const startLine = child.loc.start.line + countNewLinesBeforeContent;
diff --git a/tests/lib/rules/jsx-one-expression-per-line.js b/tests/lib/rules/jsx-one-expression-per-line.js
index 9e653e8542..c77833f1f3 100644
--- a/tests/lib/rules/jsx-one-expression-per-line.js
+++ b/tests/lib/rules/jsx-one-expression-per-line.js
@@ -28,6 +28,42 @@ const ruleTester = new RuleTester({parserOptions});
ruleTester.run('jsx-one-expression-per-line', rule, {
valid: [{
code: ''
+ }, {
+ code: `
+\t\t
+\t\t\tFail
+\t\t
+ `
+ }, {
+ code: `
+\t\t
+ Fail
+\t\t
+ `
+ }, {
+ code: `
+
+ Fail
+\t\t
+ `
+ }, {
+ code: `
+\t\t
+ OK
+
+ `
+ }, {
+ code: `
+
+\t\t\tOK
+
+ `
+ }, {
+ code: `
+
+ OK
+
+ `
}, {
code: ''
}, {