javascript - 我如何获取文本区域的行并将它们放入左右对齐的元素集中,每行在 ":"上拆分?

标签 javascript html css

我有一个文本区域,我想在每个“:”之后右对齐文本 例如:

Name:                                       Pepito
Lastname:                                    Perez
Id:                                      123456789
qwertyuuiopadsadfsafssffas:                      0

有没有办法用 css 做到这一点? 另一种选择是使用 Js,但我找不到解决问题的好策略。我认为与此类似的东西可能会起作用。

$($("textarea")[0]).text().replace(/[^:]/g, "something here")

提前致谢!

最佳答案

你不能用带有 textarea 的 CSS 做到这一点,不。 JavaScript 方法相当简单,但使用 textarea 执行此操作似乎很奇怪,因为它们用于输入

仍然:

const WIDTH = 50;

function format(ta) {
    ta.val(
        // Get the value
        ta.val()
        // Split into lines, then map each line
        .split(/[\r\n]+/).map(line => {
            // Split into left and right parts
            const match = /^\s*([^:]*:)\s*(.*)$/.exec(line);
            if (!match) {
                return line;
            }
            const [, left, right] = match;
            // Insert padding up to WIDTH
            const padding = " ".repeat(WIDTH - left.length - right.length);
            return left + padding + right;
        })
        // Join back into one string
        .join("\n")
    );
}

setTimeout(() => format($("#the-textarea")), 800);
<textarea rows="6" cols="50" id="the-textarea">Name: Pepito
Lastname: Perez
Id: 123456789
qwertyuuiopadsadfsafssffas: 0</textarea>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

关于javascript - 我如何获取文本区域的行并将它们放入左右对齐的元素集中,每行在 ":"上拆分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55518263/

相关文章:

javascript - 简单 react 错误 : Can't use @material-ui/picker library in Next. js

javascript - 如何使用 jQuery 制作动态 anchor 链接?

html - 在我的 H1 文本旁边放一张图片,不管文本的宽度是多少

jquery - 使用 jQuery 计算元素的宽度

css - 如何将背景颜色(或自定义 css 类)应用于网格中的列 - ExtJs 4?

javascript - 拖放 jquery 不工作

javascript - 有没有办法在没有实例的情况下获取 css 类的值?

javascript - 你真的需要 float 元素的宽度吗?

html - 文本居中且按钮右对齐

php - 可以向 WordPress 管理面板添加 css 修改吗?