js实现a_b变成A B的两种方法

本文介绍了使用JavaScript实现字符串转换为驼峰命名的方法。通过两个示例代码展示了如何去除下划线并转换首字母为大写的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.var key = 'a_b';

var a = key.replace(/\b.|_./g, function (i) {
if (i.length === 2) {
i = ' ' + i[1];
}
return i.toUpperCase();
});

 

2.先去除下划线,再将首字母大写,再用substring方法,最后用join,like this:

var array = key.split('_');

for (var i = 0; i < array.length; i++) {
array[i] = array[i][0].toUpperCase() + array[i].substring(1, array[i].length);
}
var servertype = array.join(' ');

转载于:https://www.cnblogs.com/family-626-77/p/6343246.html

<think>嗯,用户的问题是关于在泛微E9系统中,当字段A为空时如何获取字段B的值。我需要先理解用户的具体需求。可能用户是在处理表单时,希望某个字段的值根据另一个字段是否为空来动态获取另一个字段的值。比如,当字段A没有输入时,自动填入字段B的内容。 首先,我得回忆一下泛微E9的相关功能和API。根据之前提供的引用,比如引用[1]中提到使用WfForm.changeFieldValue来修改字段值,还有获取字段值的方法,比如WfForm.getFieldValue。可能用户需要在前端JavaScript实现这个逻辑。 然后,用户可能需要配置显示规则或者使用JS脚本来监听字段的化。比如,当字段A的值发生化时,检查是否为空,如果是空的,就去获取字段B的值并设置到某个目标字段。引用[3]里提到了显示属性联动,但这里可能需要更动态的赋值,而不仅仅是显示或隐藏。 另外,引用[2]提到通过数据库查询获取自定义字段的值,但这种情况可能需要后端处理,不过用户的问题可能更倾向于前端实时处理。所以,可能不需要涉及数据库查询,而是直接在前端获取字段B的值。 接下来需要考虑如何触发这个逻辑。可能需要在字段A的onchange事件中添加监听,当字段A的值化时,触发检查。如果字段A为空,则获取字段B的值并赋值给目标字段。这需要用到WfForm.registerCheck事件或者直接绑定事件。 还要注意字段类型,比如是文本字段还是浏览按钮。如果是浏览按钮,可能需要处理specialobj,如引用[1]中提到的,确保显示和存储的值都正确。但用户的问题可能只是简单的文本字段,所以可能不需要处理特殊对象。 步骤可能包括:1. 监听字段A的化;2. 检查字段A是否为空;3. 如果为空,获取字段B的值;4. 将字段B的值赋给目标字段。需要确保脚本的位置正确,比如在表单的JS脚本中,或者在流程的节点中注册。 另外,是否需要考虑字段B的值在什么时候会被修改?比如,如果字段B的值在表单中可能被用户修改,那么需要确保在字段A化时,及时获取最新的字段B的值。或者是否需要初始化时就检查字段A是否为空,并处理? 可能还需要处理多个情况,比如字段A从空为非空时,是否需要清除之前从字段B获取的值?或者用户的需求只是当字段A为空时,一次性获取字段B的值? 最后,可能需要提供两种方法:一种纯前端JS实现,另一种结合后端数据库查询。根据用户的具体场景,比如是否需要实时性,或者数据是否来自其他模块。但根据用户的问题描述,可能更倾向于前端实现。</think>在泛微E9系统中,当字段A为空时获取字段B的值,可以通过以下两种方法实现: --- ### 方法一:前端JavaScript实现(实时响应) ```javascript // 监听字段A值化 WfForm.registerCheck(function (name, value, datas) { if (name === "fieldA") { // 替换为字段A的标识 var fieldAValue = WfForm.getFieldValue("fieldA"); if (!fieldAValue) { // 当字段A为空时 // 获取字段B的值 var fieldBValue = WfForm.getFieldValue("fieldB"); // 替换为字段B的标识 // 将字段B的值赋给目标字段(例如字段C) WfForm.changeFieldValue("fieldC", fieldBValue); } } return true; }); ``` **特点**:实时监听字段A化,适用于需要动态联动的场景[^1][^3]。 --- ### 方法二:后端数据库查询(适用于复杂逻辑) 若需要结合数据库查询(如字段B值存储在自定义表中): ```javascript // 1. 监听字段A化 WfForm.registerCheck(function (name, value, datas) { if (name === "fieldA" && !value) { // 2. 调用后端接口查询字段B的值 var sql = "SELECT fieldB FROM cus_fielddata WHERE id = 11"; // 替换为实际SQL var result = Ajax.request("/api/query", { sql: sql }); // 3. 将结果赋值给目标字段 WfForm.changeFieldValue("fieldC", result.fieldB); } return true; }); ``` **注意**:需在泛微后台配置SQL查询权限,且字段B的数据库字段名需通过组织权限中心查询[^2]。 --- ### 实现细节 1. **字段标识获取**:通过表单设计器查看字段的`fieldid`(如`field11_2`)。 2. **特殊对象处理**:若字段为浏览按钮类型,需同步设置`specialobj`确保显示正确[^1]。 3. **事件触发范围**:建议将脚本放在表单的`JS脚本`中或通过流程节点注册。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值