User:Jonesey95/AutoEd/issn.js
var AutoEd_baseurl = 'http://en.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=User:Jonesey95/AutoEd/';
if (location.protocol === 'https:') {
AutoEd_baseurl = 'https://en.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=User:Jonesey95/AutoEd/';
}
mw.loader.load(AutoEd_baseurl + 'core5.js'); //Imports the "framework" script needed to make this function
//Sets variable configuration
autoEdTag5 = "Fixing CS1 ISSN errors or other invalid ISSN using AutoEd"; //Tweaks edit summary
autoEdLinkName5 = "AutoEd ISSN"; //Changes the link name at the top of the page
autoEdLinkHover5 = "Run AutoEd to replace strings"; //When user hovers over link
//Set up function
function ReplaceISSN(str) { //function to replace ISSN strings
//Replace bad Time magazine ISSN
str = str.replace(/issn\s*=\s*0040-*718X/g, 'issn=0040-781X');
//Comment out invalid Billboard Brasil ISSN (probably a UPC)
str = str.replace(/(issn\s*=\s*977-\s*217605400-2\s*\|*)/gi, '');
str = str.replace(/(issn\s*=\s*977-2155985400-2)/gi, '');
str = str.replace(/(issn\s*=\s*977-879605400-2)/gi, '');
//Replace ISSN lower-case x with uppercase X
str = str.replace(/(issn\s*[=\|]\s*\d\d\d\d)[-–—= ]*(\d\d\d)x/g, '$1-$2X');
str = str.replace(/(ISSN\s*[=\|]\s*\d\d\d\d)[-–—= ]*(\d\d\d)x/g, '$1-$2X');
//Fix crazy separators
str = str.replace(/(issn\s*=\s*\d\d\d\d)[‐–—=\. ](\d\d\d[\dX])/gi, '$1-$2');
str = str.replace(/(issn\s*=\s*\d\d\d\d)\&ndash\;(\d\d\d[\dX])/gi, '$1-$2');
//Fix crazy values
str = str.replace(/issn\s*=\s*none\s*([\|\}])/gi, 'issn=$1');
str = str.replace(/issn\s*=\s*null\s*([\|\}])/gi, 'issn=$1');
str = str.replace(/issn\s*=\s*n\/a\s*([\|\}])/gi, 'issn=$1');
str = str.replace(/issn\s*=\s*needed\s*([\|\}])/gi, 'issn=$1');
//Fix punctuation or word following
str = str.replace(/(issn\s*=\s*\d\d\d\d)-*(\d\d\d[\dX])[\.\,\)]\s*([\|\}])/gi, '$1-$2 $3');
str = str.replace(/issn\s*=\s*(\d\d\d\d)-*(\d\d\d[\dX])\s*\([a-z]+\)\s*([\|\}])/gi, 'issn=$1-$2 $3');
//Fix letters before or after
str = str.replace(/issn\s*=\s*[a-z,]+\s*(\d\d\d\d)-*(\d\d\d[\dX])\s*[\.\,\)\=]*\s*([\|\}])/gi, 'issn=$1-$2 $3');
str = str.replace(/issn\s*=\s*\#\s*(\d\d\d\d)-*(\d\d\d[\dX])/gi, 'issn=$1-$2');
str = str.replace(/issn\s*=\s*(\d\d\d\d)-*(\d\d\d[\dX])\s*[a-z]+\s*([\|\}])/gi, 'issn=$1-$2 $3');
str = str.replace(/(issn\s*=\s*\d\d\d\d-*\d\d\d[\dX])[\;\,\s]*\([-a-z]+\)\s*([\|\}])/gi, '$1');
//Fix extra "issn" after =
str = str.replace(/issn\s*=\s*issn[\s-:=]+(\d\d\d\d)-*(\d\d\d[\dX])\s*\([a-z]+\)\s*([\|\}])/gi, 'issn=$1-$2 $3');
str = str.replace(/issn\s*=\s*issn[\s-:=]+(\d\d\d\d)-*(\d\d\d[\dX])/gi, 'issn=$1-$2');
//Fix double issn
str = str.replace(/(issn\s*=\s*\d\d\d\d-\d\d\d[\dX])[\;\,]\s+\d\d\d\d-\d\d\d[\dX]/gi, '$1');
str = str.replace(/(issn\s*=\s*\d\d\d\d-\d\d\d[\dX])\s+\d\d\d\d-\d\d\d[\dX]/gi, '$1');
str = str.replace(/(issn\s*=\s*\d\d\d\d-\d\d\d[\dX])\/\d\d\d\d-\d\d\d[\dX]/gi, '$1');
str = str.replace(/(issn\s*=\s*\d\d\d\d-*\d\d\d[\dX])[\;\,\s]*\([-a-z]+\)\/*[\;\,\s]*\d\d\d\d-*\d\d\d[\dX]\s*\([-a-z]+\)\/*/gi, '$1');
//Billboard USA ISSN
str = str.replace(/issn\s*=\s*0005-*2510/gi, 'issn=0006-2510');
str = str.replace(/issn\s*=\s*006-*2510/gi, 'issn=0006-2510');
//Super Play ISSN
str = str.replace(/issn\s*=\s*0966-*6199/gi, 'issn=0966-6192');
//ISSN is actually an ISBN
str = str.replace(/issn\s*=\s*(97[89][\d-]+\s*[\|\}])/gi, 'isbn=$1');
//Royal Asiatic Society Hong Kong Branch
str = str.replace(/issn\s*=\s*1990-*7295/gi, 'issn=1991-7295');
//Replace Zilmer invalid ISSN with valid ISBN
str = str.replace(/issn\s*=\s*1406-*2865/gi, 'isbn=9789949110896');
return str;
}
function autoEdFunctions5() { //Activates individual modules when "auto ed" tab is clicked
var txt = document.editform.wpTextbox1; //leave this value as 1
txt.value = ReplaceISSN(txt.value);
}