diff --git a/utils/string-utils.class.ts b/utils/string-utils.class.ts index dff363ff..1f24592f 100644 --- a/utils/string-utils.class.ts +++ b/utils/string-utils.class.ts @@ -193,7 +193,7 @@ export class Identifier { pid = Identifier.getRawDOIValue(pid); return {"class": "doi", "id": pid}; } else if (Identifier.isValidORCID(pid)) { - return {"class": "ORCID", "id": pid}; + return {"class": "ORCID", "id": Identifier.getRawORCID(pid)}; } else if (Identifier.isValidPMCID(pid)) { return {"class": "pmc", "id": pid}; } else if (Identifier.isValidPMID(pid)) { @@ -236,9 +236,15 @@ export class Identifier { public static isValidORCID(str: string): boolean { let exp = /\b\d{4}-\d{4}-\d{4}-(\d{3}X|\d{4})\b/g; - return str.match(exp) != null; + return str.match(exp) != null || this.getRawORCID(str).match(exp) != null; + } + public static getRawORCID(id: string): string { + if(id.indexOf("orcid.org")!=-1 && id.split("orcid.org/").length > 1){ + id = id.split("orcid.org/")[1]; + } + return id; + } - public static isValidPMID(str: string): boolean { let exp = /^\d*$/g; return str.match(exp) != null;