//内容
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正则笔记的更多相关文章

  1. js正则学习

    一直对正则很纠结也很畏惧,以前感觉花时间理解一个个奇奇怪怪的符号,还不如直接百度谷歌之. 但知其然不知其所以然也是种痛苦,所以花了两天稍微学了一下,虽然没学很深入彻底,但也比之前进步不少,特此笔记. ...

  2. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  3. Vue.js学习笔记(2)vue-router

    vue中vue-router的使用:

  4. js读书笔记

    js读书笔记 基本类型的基本函数总结 1. Boolean() 数据类型 转换为true的值 转换为false的值 Boolean true false String 任何非空字符串 "&q ...

  5. React.js入门笔记

    # React.js入门笔记 核心提示 这是本人学习react.js的第一篇入门笔记,估计也会是该系列涵盖内容最多的笔记,主要内容来自英文官方文档的快速上手部分和阮一峰博客教程.当然,还有我自己尝试的 ...

  6. js正则

    JS正则 test:判断字符串是否符合规定的正则 rep = /\d+/; rep.test("asdfoiklfasdf89asdfasdf") # true rep = /^\ ...

  7. js正则匹配的一个日常应用

    应用实例 1 /** 将段落中的 \n 转换为 <p></p>, 规范存储 */ 2 function formatParagraphForStore(val) { 3 var ...

  8. jS正则和WEB框架Django的入门

    JS正则 -test 判断字符串是否符合规定的正则表达式 -exec 获取匹配的数据 test的例子: 从上述的例子我们可以看出,如果rep.test匹配到了就返回true,否则返回false exe ...

  9. js正则实现二代身份证号码验证详解

    js正则实现二代身份证号码验证详解 根据[中华人民共和国国家标准 GB 11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成.排列顺序从左至 ...

随机推荐

  1. NX二次开发-UFUN获取直线的两个端点UF_CURVE_ask_line_data

    NX9+VS2012 #include <uf.h> #include <uf_obj.h> #include <uf_ui.h> UF_initialize(); ...

  2. NX二次开发-UFUN高亮显示对象UF_DISP_set_highlight

    NX11+VS2013 #include <uf.h> #include <uf_modl.h> #include <uf_disp.h> UF_initializ ...

  3. NX二次开发-UFUN获得边的类型UF_MODL_ask_edge_type

    1 NX11+VS2013 2 3 #include <uf.h> 4 #include <uf_ui.h> 5 #include <uf_modl.h> 6 #i ...

  4. NX二次开发-UFUN编辑图层类别描述UF_LAYER_edit_category_descr

    1 NX11+VS2013 2 3 #include <uf.h> 4 #include <uf_layer.h> 5 6 7 UF_initialize(); 8 9 //创 ...

  5. MDK(KEIL) 两步解决 中文乱码 及 中文光标 半个半个跳的问题

    1. 如果已经用MDK(KEIL)的默认设置写了好多中文,那么先用notepad把文件一一打开然后转变编码格式为 utf-8 without ROM,如下: 2. 如果还没有开始编辑,或者已经用not ...

  6. DNS隧道--dnscat2

    安装 服务端 git clone https://github.com/iagox86/dnscat2.git cd dnscat2 cd server sudo gem install bundle ...

  7. Jsoup 学习笔记

    这里写自定义目录标题 Jsoup 学习笔记 解析 HTML 的字符串解析 URL 解析 本地文件解析 解析数据 DOM 解析 使用选择器解析 选择器概述 选择器组合用法 过滤用法 修改数据 HTML ...

  8. scp 传输下载

    利用scp传输文件 1.从服务器下载文件 scp username@servername:/path/filename /tmp/local_destination 例如scp codinglog@1 ...

  9. 在CentOS6上安装mysql5.7报错

    报错截图: 处理方法: # yum install numactl perl -y

  10. HIVE文件

    注册表的本地实体文件, 察看位置,以及映射本地文件到注册表中的位置, HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist 在这里写 ...