笙默考试管理系统-MyExamTest----codemirror(61)

笙默考试管理系统-MyExamTest----codemirror(61

  

目录

一、 笙默考试管理系统-MyExamTest----codemirror

二、 笙默考试管理系统-MyExamTest----codemirror

三、 笙默考试管理系统-MyExamTest----codemirror

四、 笙默考试管理系统-MyExamTest----codemirror

五、 笙默考试管理系统-MyExamTest----codemirror

  • 笙默考试管理系统-MyExamTest----codemirror

function inText(stream, state) {

        function chain(parser) {

            state.tokenize = parser;

            return parser(stream, state);

        }

  • 笙默考试管理系统-MyExamTest----codemirror

        var ch = stream.next();

        if (ch == "<") {

            if (stream.eat("!")) {

                if (stream.eat("[")) {

                    if (stream.match("CDATA[")) return chain(inBlock("atom", "]]>"));

                    else return null;

                }

                else if (stream.match("--")) return chain(inBlock("comment", "-->"));

                else if (stream.match("DOCTYPE", true, true)) {

                    stream.eatWhile(/[\w\._\-]/);

                    return chain(doctype(1));

                }

                else return null;

            }

  • 笙默考试管理系统-MyExamTest----codemirror

            else if (stream.eat("?")) {

                stream.eatWhile(/[\w\._\-]/);

                state.tokenize = inBlock("meta", "?>");

                return "meta";

            }

            else {

                type = stream.eat("/") ? "closeTag" : "openTag";

  • 笙默考试管理系统-MyExamTest----codemirror

                stream.eatSpace();

                tagName = "";

                var c;

                while ((c = stream.eat(/[^\s\u00a0=<>\"\'\/?]/))) tagName += c;

                state.tokenize = inTag;

                return "tag";

            }

        }

  • 笙默考试管理系统-MyExamTest----codemirror

        else if (ch == "&") {

            stream.eatWhile(/[^;]/);

            stream.eat(";");

            return "atom";

        }

        else {

            stream.eatWhile(/[^&<]/);

            return null;

        }

    }

    function inTag(stream, state) {

        var ch = stream.next();

        if (ch == ">" || (ch == "/" && stream.eat(">"))) {

            state.tokenize = inText;

            type = ch == ">" ? "endTag" : "selfcloseTag";

            return "tag";

        }

        else if (ch == "=") {

            type = "equals";

            return null;

        }

        else if (/[\'\"]/.test(ch)) {

            state.tokenize = inAttribute(ch);

            return state.tokenize(stream, state);

        }

        else {

            stream.eatWhile(/[^\s\u00a0=<>\"\'\/?]/);

            return "word";

        }

    }

    function inAttribute(quote) {

        return function(stream, state) {

            while (!stream.eol()) {

                if (stream.next() == quote) {

                    state.tokenize = inTag;

                    break;

                }

            }

            return "string";

        };

    }

  • 21
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

N201871643

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值