js正则笔记
//内容
var innerhtml = $('.reading_box_m').html().replace(/ tag="?[一二三四五六七八九十]+"?/ig, "");
var innerhtml = innerhtml.replace(/ id="?\d+"?/ig, "");
//初步匹配篇 章 节
var regALl_Rge1 = new RegExp('<(div|p)\\s+class="?(ue_codeTitle|ue_chapterTitle|ue_sectionTitle)"?>([^<]+)</\\1>', 'ig');
var titleLis = innerhtml.match(regALl_Rge1); innerhtml.replace(regALl_Rge1, function () {
lip = lip + 1;
//篇
var format_1_children = $('<li><a href="#"></a></li>');
//章
var format_2_children = $('<li><a href="#"></a></li>');
//节
var format_3_children = $('<li><a href="#"></a></li>');
var args = arguments;
//篇
if (args[2] == 'ue_codeTitle') {
format_1_children.children('a').prepend('<input type="button" >').attr('href', '#' + lip).append(args[3]);
format_1.append(format_1_children);
//当前篇
currF1 = format_1.children('li').last();
f = f + 1;
}
//章
else if (args[2] == 'ue_chapterTitle') {
if (f == 0 || f != lastF) {
format_2_children.children('a').prepend('<input type="button" >').attr('href', '#' + lip).append(args[3]);
//当前章
currF2 = $("<ul id='general' class='manual_book' style='display: none;'></ul>");
currF2.append(format_2_children);
//如果没有篇
if (!currF1) {
format_1.append(format_1_children);
//当前篇
currF1 = format_1.children('li').last();
currF1.children('a').after(currF2).remove();
currF2.show();
f = 1;
}
else {
currF1.children('a').after(currF2);
}
}
else {
format_2_children.children('a').prepend('<input type="button" >').attr('href', '#' + lip).append(args[3]);
currF1.children('ul').append(format_2_children);
}
f2 = f2 + 1;
lastF = f;
}
//节
else if (args[2] == 'ue_sectionTitle') {
format_3_children.children('a').prepend('<input type="button" >').attr('href', '#' + lip).append(args[3]);
if (f2 == 0 || f2 != lastF2) {
//当前节
currF3 = $("<ul id='manual_1' class='list' style='display: none;' style='display: block;'></ul>");
currF2.children('li').last().children('a').end().append(currF3);
}
currF3.append(format_3_children);
lastF2 = f2;
}
}); /*********收索关键字变色开始***********/
function HightLight(searchList) {
var arrStyle = [
{ style: "color:red;padding:0px 2px;" },
{ style: "color:orange;padding:0px 2px;" },
{ style: "color:yellow;padding:0px 2px;" },
{ style: "color:green;padding:0px 2px;" },
{ style: "color:aqua;padding:0px 2px;" },
{ style: "color:blue;padding:0px 2px;" },
{ style: "color:purple;padding:0px 2px;" }
];
searchList = decodeURIComponent(searchList);
if (!searchList) return;
for (var j = 0; j < searchList.split(',').length ; j++) {
var kyesVal = searchList.split(',')[j];
$(".reading_box_m p").filter(function (i) {
if ($(this).text().indexOf(kyesVal) != -1) {
var r = RegExp(kyesVal, 'ig');
$(this).html($(this).html().replace(r, '<span keys style=' + arrStyle[j % 7].style + ' >' + kyesVal + '</span>'));
}
});
} }
/*********收索关键字变色结束***********/ //关键字搜索
function Sercah() {
var kyesVal = $.trim(document.getElementById('txtMenKey').value);
//if (keys_test != "" && keys_test == kyesVal) { return; }//waitmsg("已找到对应的" + g_keys_count + "处关键字!", 1);相同关键字查询时返回
$(".reading").children('reading_box_m p').css({ 'background': "#FFF" })
$('span[keys]').removeAttr('style').removeAttr("id");
g_keys = 0;
var lip = 0;
if (kyesVal != '' && kyesVal != '关键字查询') {
$(".reading_box_m p").filter(function (i) {
if ($(this).text().indexOf(kyesVal) != -1) {
var r = RegExp(kyesVal, 'ig');
$(this).html($(this).text().replace(r, function () {
var arg = arguments;
lip++;
return '<span title=第' + lip + '处 id=keys' + lip + ' keys style="background:yellow; color:red">' + kyesVal + '</span>';
}))
}
});
keys_test = kyesVal; //关键字记录赋值
g_keys_count = lip; //关键字次数
if (arguments.length > 0 && arguments[0] == '0') {//有参数表示按钮点击没有查询到提示
if (lip == 0)
waitmsg("没有找到对应的关键字!", 4);
else {
waitmsg("已找到对应的" + g_keys_count + "处关键字!", 1);
PositionKeys('down', 0);//有参数是跳转到第一个查询位置
}
}
} else {
if (arguments.length > 0 && arguments[0] == '0')//有参数表示按钮点击没有查询到提示
$('#txtMenKey').val('关键字查询');
keys_test = '';
waitmsg("请输入查询关键字!", 4);
};
}; //定位关键字
function PositionKeys(t, c) { var countkey = parseInt(g_keys_count);
if (countkey == 0) {
waitmsg("没有找到对应的关键字!", 4);
return;
}
if (t == "down") {
g_keys = g_keys + 1;
if (g_keys > countkey) {
g_keys = 1;
}
}
else if (t == "up") {
g_keys = g_keys - 1;
if (g_keys <= 0) {
g_keys = countkey;
}
}
$("span[id^='keys']").css("border", "none");
$("#keys" + g_keys).css("border", "red 1px solid");
var topVal = $('.reading_box').scrollTop() + parseInt($("#keys" + g_keys).offset().top);
$('.reading_box').stop(true).animate({ scrollTop: (topVal - 30) }, 500);
};
js正则笔记的更多相关文章
- js正则学习
一直对正则很纠结也很畏惧,以前感觉花时间理解一个个奇奇怪怪的符号,还不如直接百度谷歌之. 但知其然不知其所以然也是种痛苦,所以花了两天稍微学了一下,虽然没学很深入彻底,但也比之前进步不少,特此笔记. ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- Vue.js学习笔记(2)vue-router
vue中vue-router的使用:
- js读书笔记
js读书笔记 基本类型的基本函数总结 1. Boolean() 数据类型 转换为true的值 转换为false的值 Boolean true false String 任何非空字符串 "&q ...
- React.js入门笔记
# React.js入门笔记 核心提示 这是本人学习react.js的第一篇入门笔记,估计也会是该系列涵盖内容最多的笔记,主要内容来自英文官方文档的快速上手部分和阮一峰博客教程.当然,还有我自己尝试的 ...
- js正则
JS正则 test:判断字符串是否符合规定的正则 rep = /\d+/; rep.test("asdfoiklfasdf89asdfasdf") # true rep = /^\ ...
- js正则匹配的一个日常应用
应用实例 1 /** 将段落中的 \n 转换为 <p></p>, 规范存储 */ 2 function formatParagraphForStore(val) { 3 var ...
- jS正则和WEB框架Django的入门
JS正则 -test 判断字符串是否符合规定的正则表达式 -exec 获取匹配的数据 test的例子: 从上述的例子我们可以看出,如果rep.test匹配到了就返回true,否则返回false exe ...
- js正则实现二代身份证号码验证详解
js正则实现二代身份证号码验证详解 根据[中华人民共和国国家标准 GB 11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成.排列顺序从左至 ...
随机推荐
- 在linux中的rpm -ivh 是干什么的呢?
在linux中的rpm -ivh 是干什么的呢? RMP 是 LINUX 下的一种软件的可执行程序,你只要安装它就可以了.这种软件安装包通常是一个RPM包(Redhat Linux Packet ...
- centos7.4安装高可用(haproxy+keepalived实现)kubernetes1.6.0集群(开启TLS认证)
目录 目录 前言 集群详情 环境说明 安装前准备 提醒 一.创建TLS证书和秘钥 安装CFSSL 创建 CA (Certificate Authority) 创建 CA 配置文件 创建 CA 证书签名 ...
- SQL语句增加列、修改列、删除列
SQL语句增加列.修改列.删除列 1.增加列: 1.alter table tableName add columnName varchar(30) 2.ALTER TABLE dbo.doc_exa ...
- hexo next主题深度优化(五),评论系统换成gittalk
文章目录 背景: 开始: 新建comments_git.js 找到comments.swig在最后一个endif之前 引入代码 pjax加入gitalk 遇到的问题 所有的页面共享的一个评论issue ...
- day27-面向对象进阶
#!/usr/bin/env python # -*- coding:utf-8 -*- # ----------------------------------------------------- ...
- 三极管NPN和PNP开关电路
0. 总结 NPN适合做低端驱动,即PN结在下面(低端),发射极E接地. PNP适合做高端驱动,即PN结在上面(高端),发射极E接VCC. Tips:标箭头的PN结,中间的是基极B,外头是E极. 1. ...
- C在结构体里面使用共用体
在做链表的时候我们设计每个节点都是一个结构体,每个节点的数据用一个共用体表示,每创建malloc一个结构体节点我们也要相应的malloc共用体并把它付进去. 这是定义: typedef union E ...
- Sublime Text Build 3207 x64 无法安装Package Control和插件
两个问题的解决方法: 以下都是问题的解决,在本人电脑成功解决,还有就是在虚拟机上也成功解决,可以自行尝试下 . 测试电脑为win7-64位 问题1 : 安装Package Control失败 解决问题 ...
- mysql主从复制原理分析
1.主从复制这类NFS存储数据通过inotify+rsync同步到备份的NFS服务器,只不 过Mysql的复制方案是其自带的工具inotify 是一种文件系统的变化通知机制,如文件增加.删除等事件可以 ...
- vue created与activated的区别
搬运自:https://www.cnblogs.com/goloving/p/9256212.html 使用<keep-alive>会将数据保留在内存中,如果要在每次进入页面的时候获取最新 ...