You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SharePoint文本列使用jQuery替换分号为换行求助

Hey there! 作为刚接触SharePoint时也踩过不少坑的过来人,我来帮你搞定这个文本格式化的需求~

核心思路

我们要做的就是用jQuery定位到目标textarea字段,然后把文本里的;(分号加前后空格)替换成换行符。如果你的分隔符格式有变化(比如分号前后空格不固定),还可以用正则来兼容更多情况。

代码实现(针对新建/编辑表单的textarea)

首先要确保jQuery已经加载(SharePoint默认包含jQuery,旧版本可能需要自行引入),然后用下面的代码:

// 等待SharePoint页面完全加载
$(document).ready(function() {
    // 替换成你实际的textarea列的显示名称
    var targetTextarea = $("textarea[title='你的多行文本列名称']");
    
    if (targetTextarea.length) {
        // 获取原始文本
        var originalContent = targetTextarea.val();
        // 全局替换" ; "为换行符\n
        var formattedContent = originalContent.replace(/ ; /g, '\n');
        // 把格式化后的内容放回textarea
        targetTextarea.val(formattedContent);
    }
});

兼容更多分隔符情况

如果你的文本里的分号前后空格不固定(比如有时候是; text或者text ;),可以把正则改成/\s*;\s*/g,这样不管分号前后有没有空格都能匹配:

var formattedContent = originalContent.replace(/\s*;\s*/g, '\n');

如果是列表视图里的文本格式化

要是你想在列表视图里把显示的多行文本改成每行一个(而不是修改表单里的输入),可以用下面的代码:

$(document).ready(function() {
    // 遍历所有列表项里的文本内容(.ms-list-item-body是SharePoint列表项内容的默认类)
    $(".ms-list-item-body").each(function() {
        var originalText = $(this).text();
        // 替换分号为<br>实现页面上的换行
        var formattedText = originalText.replace(/ ; /g, '<br>');
        $(this).html(formattedText);
    });
});

小提示

  • 如果你找不到textarea的定位方式,可以打开浏览器的开发者工具(F12),选中目标textarea,查看它的title属性或者id,调整选择器即可。
  • 如果是SharePoint Online,有时候需要用SP.SOD.executeFunc来确保脚本在SharePoint脚本加载完成后执行,比如:
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function() {
    // 上面的代码放在这里
});

如果还有问题,比如定位不到元素或者替换不生效,可以告诉我你的具体场景(比如是在新建表单、编辑表单还是列表视图),我再帮你调整~

内容的提问来源于stack exchange,提问作者O. Morotti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:13:58