MCPcopy Index your code
hub / github.com/ygs-code/vue / parseFilters

Function parseFilters

vue.js:9434–9604  ·  view source on GitHub ↗
(exp)

Source from the content-addressed store, hash-verified

9432 */
9433 console.log(parseFilters(' ab | c | d')) //转化成 _f("d")(_f("c")(ab))
9434 function parseFilters(exp) {
9435 // 是否在 ''中
9436 var inSingle = false;
9437 // 是否在 "" 中
9438 var inDouble = false;
9439 // 是否在 ``
9440 var inTemplateString = false;
9441 // 是否在 正则 \\ 中
9442 var inRegex = false;
9443 // 是否在 {{ 中发现一个 culy加1 然后发现一个 } culy减1 直到culy为0 说明 { .. }闭合
9444 var curly = 0;
9445 // 跟{{ 一样 有一个 [ 加1 有一个 ] 减1
9446 var square = 0;
9447 // 跟{{ 一样 有一个 ( 加1 有一个 ) 减1
9448 var paren = 0;
9449 var lastFilterIndex = 0;
9450 var c, prev, i, expression, filters;
9451
9452 for (i = 0; i < exp.length; i++) {
9453 prev = c;
9454 c = exp.charCodeAt(i);
9455 console.log('c =' + exp[i])
9456 console.log('c === 0x7C=' + (c === 0x7C))
9457 console.log('exp.charCodeAt(i + 1) !== 0x7C=' + (exp.charCodeAt(i + 1) !== 0x7C))
9458 console.log('exp.charCodeAt(i - 1) !== 0x7C=' + (exp.charCodeAt(i - 1) !== 0x7C))
9459 console.log('curly=' + (curly))
9460 console.log('!curly=' + (!curly))
9461 console.log('square=' + (square))
9462 console.log('!square=' + (!square))
9463 console.log('!paren=' + (!paren))
9464 console.log('最后一个=' + (c === 0x7C && // pipe
9465 exp.charCodeAt(i + 1) !== 0x7C &&
9466 exp.charCodeAt(i - 1) !== 0x7C && !curly && !square && !paren))
9467
9468
9469 if (inSingle) {
9470 // ' \
9471 if (c === 0x27 && prev !== 0x5C) {
9472 inSingle = false;
9473 }
9474 } else if (inDouble) {
9475 // " \
9476 if (c === 0x22 && prev !== 0x5C) {
9477 inDouble = false;
9478 }
9479 } else if (inTemplateString) {
9480 // `
9481 if (c === 0x60 && prev !== 0x5C) {
9482 inTemplateString = false;
9483 }
9484 } else if (inRegex) {
9485 // 当前在正则表达式中 /开始
9486 // / \
9487 if (c === 0x2f && prev !== 0x5C) {
9488 inRegex = false;
9489 }
9490 } else if (
9491 // 如果在 之前不在 ' " ` / 即字符串 或者正则中

Callers 4

vue.jsFile · 0.85
getBindingAttrFunction · 0.85
parseTextFunction · 0.85
processAttrsFunction · 0.85

Calls 2

pushFilterFunction · 0.85
wrapFilterFunction · 0.85

Tested by

no test coverage detected