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');
}
}
Javascript Regexp match and replace的更多相关文章
- JavaScript中String对象的match()、replace() 配合正则表达式使用
正则表达式由来已久,查找替换功能非常强大,但模板难记复杂. JavaScript中String对象的match().replace()这2个方法都要使用正则表达式的模板.当模板内容与字符串不相匹配时, ...
- JavaScript中字符串的match与replace方法
1.match方法 match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配. match()方法的返回值为:存放匹配结果的数组. 2.replace方法 replace() 方 ...
- JavaScript RegExp 基础详谈
前言: 正则对于一个码农来说是最基础的了,而且在博客园中,发表关于讲解正则表达式的技术文章,更是数不胜数,各有各的优点,但是就是这种很基础的东西,如果我们不去真正仔细研究.学习.掌握,而是抱着需要的时 ...
- JavaScript中String.prototype.replace() 方法的使用
摘抄于:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/replace ...
- JavaScript RegExp Object 正则表达式入门
什么是 RegExp? RegExp 是regular expression的缩写. RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具. 当您检索某个文本时,可以使用一种模式来描述 ...
- [转]JavaScript RegExp 对象参考手册
JavaScript RegExp 对象参考手册 RegExp 对象 RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具. 直接量语法 /pattern/attributes 创建 ...
- 【timeisprecious】【JavaScript 】JavaScript RegExp 对象
JavaScript>RegExp正则表达式 1 .From Runnob JavaScript RegExp 对象(概览) JavaScript RegExp 对象(教程) RegExp 对象 ...
- JavaScript RegExp 正则表达式基础详谈
前言: 正则对于一个码农来说是最基础的了,而且在博客园中,发表关于讲解正则表达式的技术文章,更是数不胜数,各有各的优点,但是就是这种很基础的东西,如果我们不去真正仔细研究.学习.掌握,而是抱着需要的时 ...
- 浏览器端-W3School-JavaScript:JavaScript RegExp 对象
ylbtech-浏览器端-W3School-JavaScript:JavaScript RegExp 对象 1.返回顶部 1. JavaScript RegExp 对象 RegExp 对象 RegEx ...
随机推荐
- JQuery AJAX: 了解jQuery AJAX
jQuery AJAX 一.简介1.AJAX是与服务器交换数据的技术,它在不重载全部页面的情况下,实现了对部分网页的更新.AJAX = 异步 JavaScript 和 XML(Asynchronous ...
- Ubuntu 安装软件
1,安装pthread的man文档 sudo apt-get install manpages-posix manpages-posix-dev
- 打补丁patch 命令使用
打补丁patch 命令使用 http://www.cnblogs.com/huanghuang/archive/2011/07/14/2106402.html patch 命令用于打补丁,补丁文件是使 ...
- thinkphp 对数据库的操作
查看ThinkPHP完全开发手册3.1 首先编辑配置文件 thinkphp这个数据库就不乱改了 昨天新建了一个 confluence(utf8)数据库 所以就用它学习一下吧,因为就只建立了一个数据库, ...
- 6、JavaScript进阶篇③——浏览器对象、Dom对象
一.浏览器对象 1. window对象 window对象是BOM的核心,window对象指当前的浏览器窗口. window对象方法: 注意:在JavaScript基础篇中,已讲解了部分属性,windo ...
- hadoop 文件系统API操作
配置参数:-DHADOOP_USER_NAME=hadoop public class HdfsUtils { private static FileSystem fileSystem; @Befor ...
- bootstrap实战经验
凡是基本的布局需要float实现的,都可以考虑利用网格布局. 1,.jumbotron可以形成一个青灰色的背景,并自动调节对应边距 2,.panel的应用十分广泛,可以自动设置合适的padding.甚 ...
- Springfox Reference Documentation
1. Introduction The Springfox suite of java libraries are all about automating the generation of mac ...
- 安装ECshop普遍问题的解决方法
安装ecshop经常会出现以下问题: 1.Strict Standards: Non-static method cls_image::gd_version() should not be calle ...
- 查看进程的io
linux系统上可以使用(centos 2.6.18-144开始支持),dstat版本至少是:dstat-0.6.7-1.rf.noarch.rpm安装wget -c http://linux.web ...