跳转至

字符串函数

方法清单

函数名 参数 说明
isNumberText(str) str:字符串型参数 检查其参数是否为数字格式的字符串。是,返回true;否,则返回false
isDateText(str) str:字符串型参数 检查其参数是否为日期格式的字符串。是,返回true;否,则返回false
isMailAddressText(str) str:字符串型参数 检查其参数是否为电子邮箱地址格式的字符串。是,返回true;否,则返回false
isAnsiASIIC(str) 暂未实现
splitText(str,separator) str: 需要拆分的字符串separator: 分割符 按照指定的分割符,切割文本,将分割好的结果通过数组返回
splitString(str, separator) str: 需要拆分的字符串separator: 分割符 按照指定的分割符,切割文本,将分割好的结果通过数组返回
joinText(strs) strs: 字符串数组指定的分隔符是分号";" 将指定的字符串数组按照指定的分隔符组合成字符串,返回字符串
isNotNull(val) val:要作判断的值 判断值是否不为空,为数字时不为0,为字符串时长度大于0,为日期时不为null
parseInt(text) text:数字文本参数 将数字文本转换成整型并返回
parseLong(text) text:数字文本参数 将数字文本转换成长整型并返回
parseDouble(text) text:数字文本参数 将数字文本转换成浮点型并返回

方法示例

1.isNumberText(str)

作用:实现isNumberText(num)函数的应用,数字字串校验(写在控件只读脚本中)

脚本示例:

// 表单B字段只读脚本:A字段(编号)为数值类型时,B字段设为只读(返回true)
(() => {
    const fieldAValue = getItemValueAsString("编号") || "";
    let isFieldBReadOnly = false;

    if (fieldAValue.trim()) {
        const isNumeric = STRING.isNumberText(fieldAValue) && !isNaN(Number(fieldAValue));
        if (isNumeric) {
            isFieldBReadOnly = true;
        }
    }

    println(`A字段(编号)值:${fieldAValue} | 是否为数值类型:${isFieldBReadOnly}`);
    return isFieldBReadOnly;
})();

2.isDateText(str)

作用:实现isDateText(num)函数的应用,日期字串校验(写在控件只读脚本中)

脚本示例:

// 表单B字段只读脚本:A字段(时间)为有效日期字符串时,B字段设为只读
(() => {
    const dateFieldValue = getItemValueAsString("时间") || "";
    let isBFieldReadOnly = false;

    if (dateFieldValue.trim()) {
        const isValidDate = isDateText(dateFieldValue) && !isNaN(new Date(dateFieldValue).getTime());
        if (isValidDate) {
            isBFieldReadOnly = true; // A是有效日期 → B只读
        }
    }

    println(`A字段(时间)值:${dateFieldValue} | B字段是否只读:${isBFieldReadOnly}`);
    return isBFieldReadOnly;
})();

3.isMailAddressText(str)

作用:实现isMailAddressText(num)函数的应用,Email字串校验(写在控件只读脚本中)

脚本示例:

// 表单B字段只读脚本:A字段(邮箱)为有效电子邮箱格式时,B字段设为只读
(() => {
    const emailFieldValue = getItemValueAsString("邮箱") || "";
    let isBFieldReadOnly = false;

    if (emailFieldValue.trim()) {
        // 平台内置邮箱格式校验 + 正则二次校验(避免平台方法漏判)
        const emailReg = /^[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
        const isValidEmail = STRING.isMailAddressText(emailFieldValue) && emailReg.test(emailFieldValue.trim());

        if (isValidEmail) {
            isBFieldReadOnly = true;
        }
    }

    // 调试日志(可选,便于排查问题)
    println(`A字段(邮箱)值:${emailFieldValue} | B字段是否只读:${isBFieldReadOnly}`);
    return isBFieldReadOnly;
})();

4.isAnsiASIIC(str)

作用:暂未实现

5.splitString(str, separator)

作用:实现splitString(str, separator)函数的应用,以指定字串分割字符串(写在下拉框中选项脚本)

脚本示例:

// 表单B字段选项脚本:将A字段值通过splitString完全匹配$$分割后生成下拉选项
(() => {
    const FIELD_A_NAME = "编号"; // A字段名称(替换为实际表单字段名)
    const SEPARATOR = "$$"; // 完全匹配的分割符
    const fieldAValue = getItemValueAsString(FIELD_A_NAME) || "林俊杰$$林志颖$$$安以轩$邱泽$$唐嫣";

    const splitArr = STRING.splitString(fieldAValue, SEPARATOR) || [];
    const validOptions = splitArr.filter(item => item && item.trim().length > 0);

    const opts = $TOOLS.createOptions();
    validOptions.forEach((optionValue) => {
        const cleanValue = optionValue.trim(); // 清洗选项首尾空格
        opts.add(cleanValue, cleanValue); // 选项值 = 显示文本
    });

    // 调试日志(可选,便于排查分割结果)
    println(`A字段原始值:${fieldAValue}`);
    println(`splitString分割后数组:${splitArr}`);
    println(`最终有效选项:${validOptions}`);

    return opts;
})();

6.joinText(strs)

作用:实现joinText(strs)函数的应用,数据转换成字符串并以分割符连接

脚本示例:

// 脚本功能:将目标字符串通过splitText部分匹配$$分割,再用joinText组合为;分隔的字符串
(() => {
    const FIELD_A_NAME = "源字段"; // 替换为实际表单A字段名
    const SPLIT_SEPARATOR = "$$"; // splitText部分匹配的分割符
    const rawString = getItemValueAsString(FIELD_A_NAME) || "11$$22$$$33$44$$55";
    const splitArr = STRING.splitText(rawString, SPLIT_SEPARATOR) || [];
    const validArr = splitArr.filter(item => item && item.trim().length > 0);
    const joinedValue = splitString(validArr);

    println(`原始字符串:${rawString}`);
    println(`splitText分割后数组:${splitArr}`);
    println(`过滤后有效数组:${validArr}`);
    println(`joinText组合后字符串:${joinedValue}`);

    return joinedValue;
})();

7.isNotNull(val)

作用:实现isNotNull(val)函数的应用,非空值校验(写在控件校验脚本中)

脚本示例:

// 表单保存校验脚本:校验「编号」控件值非空(含空白字符校验)
(() => {
    let fieldValue = getItemValue("编号");
    const trimmedValue = (fieldValue || "").toString().trim();

    const isEmpty = trimmedValue.length === 0;
    let errorMsg = "";

    if (isEmpty) {
        errorMsg = "编号字段不能为空!";
    }

    println(`编号字段原始值:${fieldValue} | 是否为空:${isEmpty}`);
    return errorMsg;
})();

8.parseInt(text)

作用:实现parseInt(text)函数的应用,将数字文本转换成整型并返回

脚本示例:

// 表单B字段值脚本:将A字段(价格)转换为整型后赋值给B
(() => {
    const fieldAValue = getItemValueAsString("价格") || "";
    let intValue = 0;

    if (fieldAValue.trim()) {
        const numValue = Number(fieldAValue);
        if (!isNaN(numValue)) {
            intValue = NUMBER.parseInt(numValue, 10);
        }
    }

    println(`A字段(价格)原始值:${fieldAValue} | 转换后整型值:${intValue}`);
    return intValue;
})();

9.parseLong(text)

作用:实现parseLong(text)函数的应用,将数字文本转换成长整型并返回

脚本示例:

// 表单B字段值脚本:将A字段(价格)转换为长整型(Long)后赋值给B
(() => {
    const fieldAValue = getItemValueAsString("价格") || "";
    let longValue = 0;

    if (fieldAValue.trim()) {
        const numValue = Number(fieldAValue);
        if (!isNaN(numValue)) {
            longValue = NUMBER.parseLong(fieldAValue, 10);
        }
    }

    println(`A字段(价格)原始值:${fieldAValue} | 转换后长整型值:${longValue}`);
    return longValue;
})();

10.parseDouble(text)

作用:实现parseDouble(text)函数的应用,将数字文本转换成浮点型并返回

脚本示例:

// 表单B字段值脚本:将A字段(价格)转换为浮点型(Double)后赋值给B
(() => {
    const fieldAValue = getItemValueAsString("价格") || "";
    let floatValue = 0;

    if (fieldAValue.trim()) {
        const numValue = Number(fieldAValue);
        if (!isNaN(numValue)) {
            floatValue = NUMBER.parseDouble(fieldAValue);
        }
    }

    println(`A字段(价格)原始值:${fieldAValue} | 转换后浮点型值:${floatValue}`);
    return floatValue;
})();