console
const showDiv = document.getElementById('showDiv');
const t = document.getElementById('t');
t.addEventListener('input', (e) => {
let text = e.target.value;
showDiv.innerHTML = text;
console.log(text, text.length)
})
function parseTextToRows({el} = {}){
if(!el) return []
}
function getTextWidth(text, font) {
const canvas = document.createElement('canvas');
canvas.setAttribute('width', 100);
const ctx = canvas.getContext('2d');
ctx.font = font || '18px Arial';
const metrics = ctx.measureText(text);
return metrics.width;
}
const text = "Hello, World!";
const font = "18px Arial";
const width = getTextWidth(text, font);
console.log(`Text width: ${width}px`);
(()=>{
function isPartOfWord(text, index) {
const wordBoundaryRegex = /\b\w/g;
let match;
let wordStart = -1;
let wordEnd = -1;
while ((match = wordBoundaryRegex.exec(text)) !== null) {
const start = match.index;
const end = start + match[0].length;
if (index >= start && index < end) {
return true;
}
}
return false;
}
const text = "Hello, World!";
console.log(isPartOfWord(text, 0));
console.log(isPartOfWord(text, 7));
})()
(()=>{
function isPartOfWord(text, index) {
let inWord = false;
for (let i = 0; i <= index; i++) {
if (/[a-zA-Z0-9]/.test(text[i])) {
inWord = true;
} else {
inWord = false;
}
}
return inWord;
}
const text = "Hello, World!";
console.log(isPartOfWord(text, 0));
console.log(isPartOfWord(text, 7));
})()
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>解析文本</title>
<script crossorigin src="https://unpkg.com/react@18/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
</head>
<body>
<div id="root"></div>
<div id="app"></div>
<button id="parseButton">解析文本</button>
<textarea id="t"> </textarea>
<div id="showDiv"> </div>
<script type="text/babel"></script>
</body>
</html>
body {
background: pink;
}
textarea {
width: 300px;
height: 300px;
font-size: 18px;
}
#showDiv {
background: #ccc;
white-space: pre-wrap;
position: absolute;
bottom: 20px;
font-size: 18px;
}