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

转载于:https://www.cnblogs.com/raybiolee/p/5612309.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值