MCPcopy Create free account
hub / github.com/zxlie/FeHelper / initVisualDebugger

Function initVisualDebugger

apps/regexp/index.js:1514–1661  ·  view source on GitHub ↗

* 初始化可视化调试器

()

Source from the content-addressed store, hash-verified

1512 * 初始化可视化调试器
1513 */
1514function initVisualDebugger() {
1515 const testBtn = document.getElementById('visualTestBtn');
1516 const regexInput = document.getElementById('visualRegex');
1517 const testTextArea = document.getElementById('visualTestText');
1518 const resultDiv = document.getElementById('visualResult');
1519 const errorMsg = document.getElementById('visualErrorMsg');
1520 const flagCheckboxes = document.querySelectorAll('.flag-btn input[type="checkbox"]');
1521
1522 if (!testBtn) return;
1523
1524 // 标志复选框事件
1525 flagCheckboxes.forEach(checkbox => {
1526 checkbox.addEventListener('change', updateFlagsInputFromCheckbox);
1527 });
1528
1529 function updateFlagsInputFromCheckbox() {
1530 const flags = Array.from(flagCheckboxes)
1531 .filter(cb => cb.checked)
1532 .map(cb => cb.value)
1533 .join('');
1534 document.getElementById('visualFlags').value = flags;
1535 }
1536
1537 testBtn.addEventListener('click', doVisualTest);
1538 regexInput.addEventListener('keyup', function(e) {
1539 if (e.key === 'Enter') doVisualTest();
1540 });
1541 testTextArea.addEventListener('keyup', function(e) {
1542 if (e.key === 'Enter' && e.ctrlKey) doVisualTest();
1543 });
1544
1545 // 新增:输入时自动实时匹配
1546 regexInput.addEventListener('input', doVisualTest);
1547 testTextArea.addEventListener('input', doVisualTest);
1548
1549 function doVisualTest() {
1550 let regexStr = regexInput.value.trim();
1551 const testText = testTextArea.value.trim();
1552
1553 errorMsg.textContent = '';
1554
1555 if (!regexStr) {
1556 errorMsg.textContent = '请输入正则表达式';
1557 return;
1558 }
1559 if (!testText) {
1560 errorMsg.textContent = '请输入要测试的文本';
1561 return;
1562 }
1563
1564 // 新增:支持 /pattern/flags 写法
1565 let pattern = regexStr;
1566 let flags = Array.from(flagCheckboxes)
1567 .filter(cb => cb.checked)
1568 .map(cb => cb.value)
1569 .join('');
1570
1571 // 如果是 /pattern/flags 形式

Callers 1

initNewVersionFeaturesFunction · 0.85

Calls 2

doVisualTestFunction · 0.85
addEventListenerMethod · 0.45

Tested by

no test coverage detected