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);

}