Get a better last name if current guess starts with weird symbols
This commit is contained in:
parent
469d689f37
commit
bf1c52a5fd
2 changed files with 22 additions and 3 deletions
|
@ -179,9 +179,13 @@ Zotero.Utilities = {
|
|||
var lastName = author;
|
||||
}
|
||||
} else {
|
||||
var spaceIndex = author.lastIndexOf(" ");
|
||||
// Don't parse "Firstname Lastname [Country]" as "[Country], Firstname Lastname"
|
||||
var spaceIndex = author.length;
|
||||
do {
|
||||
spaceIndex = author.lastIndexOf(" ", spaceIndex-1);
|
||||
var lastName = author.substring(spaceIndex + 1);
|
||||
var firstName = author.substring(0, spaceIndex);
|
||||
} while (!Zotero.Utilities.XRegExp('\\pL').test(lastName[0]) && spaceIndex > 0)
|
||||
}
|
||||
|
||||
if(firstName && allCapsRe.test(firstName) &&
|
||||
|
|
|
@ -16,6 +16,21 @@ describe("Zotero.Utilities", function() {
|
|||
}
|
||||
}
|
||||
});
|
||||
|
||||
it('should not parse words starting with symbols as last name', function() {
|
||||
let author = Zotero.Utilities.cleanAuthor('First Middle Last [CountryName]', false);
|
||||
assert.equal(author.firstName, 'First Middle');
|
||||
// Brackets at the beginning and end of a string get removed for strings
|
||||
// such as [First Last] -> Last, First.
|
||||
// The current output is not ideal, but better than "[CountryName, First Middle Last"
|
||||
assert.equal(author.lastName, 'Last [CountryName');
|
||||
});
|
||||
|
||||
it('should parse names starting with unicode characters correctly', function() {
|
||||
let author = Zotero.Utilities.cleanAuthor('Ąžuolas Žolynas', false);
|
||||
assert.equal(author.firstName, 'Ąžuolas');
|
||||
assert.equal(author.lastName, 'Žolynas');
|
||||
})
|
||||
});
|
||||
describe("cleanISBN", function() {
|
||||
let cleanISBN = Zotero.Utilities.cleanISBN;
|
||||
|
|
Loading…
Reference in a new issue