JavaScript中添加'and'后如何实现风险提示语句整段加粗?
搞定风险提示整句加粗的问题
嘿,我猜你是在拼接风险提示文本的时候,不小心把加粗标记(*)只套在了句子前半部分,导致"and"和最后一个风险因素没被包含进去对吧?这确实很容易踩坑,我来给你捋清楚怎么解决。
核心问题就是:要让整个提示句子都被一对完整的*包裹住,不能把标记拆成两半分别加在拼接的片段里。下面用JavaScript举例子(其他语言思路完全一致):
第一步:先拼好符合语法的完整句子,再整体加粗
这种方法最不容易出错,先把风险因素的部分处理好,再给整个句子套加粗标记:
// 假设riskFactors是你的风险因素数组,比如 ["吸烟史", "肥胖", "家族病史"] const riskFactors = ["吸烟史", "肥胖", "家族病史"]; let alertMessage = ""; if (riskFactors.length === 1) { // 单个因素的句式 alertMessage = `*The following risk factor IS a high risk: ${riskFactors[0]}*`; } else { // 多个因素的情况:先把前n-1个用逗号分隔,最后加and连接最后一个 const leadingFactors = riskFactors.slice(0, -1).join(", "); const finalFactor = riskFactors.at(-1); // 把完整句子整个放在*里面! alertMessage = `*The following risk factors ARE high risks: ${leadingFactors}, and ${finalFactor}*`; } // 输出或者渲染这个消息就行 console.log(alertMessage);
避开你之前踩的坑
你之前的错误大概率是这样的:把加粗标记只加在了前半段,后半段落在了标记外面,比如:
// ❌ 错误写法:只有前半部分被加粗 alertMessage = `*The following risk factors ARE high risks: ${leadingFactors}, ` + `and ${finalFactor}`;
这种情况里,and ${finalFactor}不在*的范围内,自然不会被加粗。只要把整个字符串都放在一对*里,就没问题了。
额外小提示
如果是2个因素的情况,你可能不想显示成"A, and B",可以再加个判断优化一下:
else if (riskFactors.length === 2) { alertMessage = `*The following risk factors ARE high risks: ${riskFactors[0]} and ${riskFactors[1]}*`; } else { // 3个及以上的情况用逗号加and const leadingFactors = riskFactors.slice(0, -1).join(", "); const finalFactor = riskFactors.at(-1); alertMessage = `*The following risk factors ARE high risks: ${leadingFactors}, and ${finalFactor}*`; }
这样处理后,不管是1个还是多个风险因素,整个提示句子都会完整加粗,包括"and"后面的最后一个因素啦。
内容的提问来源于stack exchange,提问作者ren
相关产品推荐
相关产品推荐

