Javascript Regexp match and replace

# add a new article reference to database
function addnewpub() {
var year = $("input#year").val();
var articlelink = $("input#articlelink").val();
var pdflink = $("input#pdflink").val();
var reference = $("input#reference").val();
if (!!(year && articlelink && pdflink && reference)) {
	if (! isURL(articlelink) ){
			$(this).next('.status').html("Article Link Invalid");
			$(this).next('.status').css('color', '#F50162');
			$('input#articlelink').focus().css('box-shadow','0 0 12px #FEBB2D inset');
			return;
		}
		if (!pdflink.match(/https?:\/\/renlab\.fudan\.edu\.cn\/renlab\/.*\.pdf$/)) {
			$(this).next('.status').html("PDF Link Invalid");
			$(this).next('.status').css('color', '#F50162');
			$('input#pdflink').focus().css('box-shadow','0 0 12px #FEBB2D inset');
			return;
		}
		if (!year.match(/^[2-3][0-9][0-9][0-9]$/)) {
			$(this).next('.status').html("Year Invalid");
			$(this).next('.status').css('color', '#F50162');
			$('input#year').focus().css('box-shadow','0 0 12px #FEBB2D inset');
			return;
		}
		if (! (reference.match(/Ren\s+G[*#]?/) &&
		     ( reference.match(/(\(\d{4}\)(?:\s+)?(?:[^\.]+\.)(?:\s+)?)([A-Za-z ]+)(\.?(?:\s+)?)/) ||
			   reference.match(/(\(\d{4}\)(?:\.)?(?:\s+)?(?:[^\.]+\.)(?:\s+)?)([A-Za-z \.]+\.?)((?:\s+)?(?:DOI|doi))/) ) ) ){
			$(this).next('.status').html("Reference Invalid");
			$(this).next('.status').css('color', '#F50162');
			$('input#reference').focus().css('box-shadow','0 0 12px #FEBB2D inset');
			return;
		}
		var newref = reference.replace(/Ren\s+G[*#]?/, "<span class='gd_r'>$&</span>");
		newref = newref.replace(/(\(\d{4}\)(?:\s+)?(?:[^\.]+\.)(?:\s+)?)([A-Za-z ]+)(\.?(?:\s+)?)/, "$1<span class='gd_r'>$2</span>$3");
		reference = newref.replace(/(\(\d{4}\)(?:\.)?(?:\s+)?(?:[^\.]+\.)(?:\s+)?)([A-Za-z \.]+\.?)((?:\s+)?(?:DOI|doi))/, "$1<span class='gd_p'>$2</span>$3");
		$(this).next('.status').after("<div class='preview'></div>").html(reference);

		$.get('/wp-content/themes/yusi1.0/misc/addnewpub.php', {
			'year': year,
			'articlelink': articlelink,
			'pdflink': pdflink,
			'reference': reference
		}).done(function(data) {
			$(this).next('.status').html('Added Success');
			$(this).next('.status').css('color', '#01B0F5');
			$("input#year").val(date('o'));
			$("input#articlelink").val(' ');
			$("input#pdflink").val(' ');
			$("input#reference").val(' ');
		});
	}
	else {
		$(this).next('.status').html("Invaid Input, all Required");
		$(this).next('.status').css('color', '#F50162');
	}
}


posted @ 2016-06-23 21:47  乌祁班岚图  阅读(141)  评论(0编辑  收藏  举报