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

如何按特殊字符拆分单词?如何实现字符串150px宽并在连字符处换行?

问题1:如何按特殊字符拆分一个单词?

可以用JavaScript的split()方法,根据目标特殊字符或正则表达式拆分字符串:

  • 拆分单个特殊字符(比如连字符-):
const str = "12333-2333-233-23339392-332332323";
const splitResult = str.split('-');
console.log(splitResult); // 输出: ["12333", "2333", "233", "23339392", "332332323"]
  • 拆分多种特殊字符(比如同时匹配-、_、@):
    用正则表达式匹配所有目标特殊字符:
const str = "abc-def_ghi@jkl";
const splitResult = str.split(/[-_@]/);
console.log(splitResult); // 输出: ["abc", "def", "ghi", "jkl"]
  • 匹配任意非字母数字的特殊字符:
    用正则/[^\w]/匹配所有非字母、数字、下划线的字符:
const str = "test!@#$%^&*()_+=-[]{}|;:'\",.<>?/`~";
const splitResult = str.split(/[^\w]/);
console.log(splitResult); // 输出: ["test", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""]
问题2:如何让字符串被限制在150px的宽度内,并在连字符(-)处自动换行?

仅设置width:150px无法保证在连字符处自动换行,需添加额外CSS属性控制换行规则:

方案1:使用overflow-wrap: break-word

该属性允许浏览器在容器宽度不足时,优先在连字符等分隔符处断开长字符串:

div {
  width: 150px;
  overflow-wrap: break-word; /* 现代浏览器兼容 */
  word-wrap: break-word; /* 旧版浏览器兼容 */
}

方案2:使用hyphens: auto(需指定语言)

结合语言属性,让浏览器自动处理连字符位置的换行:

div {
  width: 150px;
  hyphens: auto;
}

对应的HTML需添加语言标识:

<div lang="zh-CN">
  12333-2333-233-23339392-332332323
</div>

完整示例代码

div {
  width: 150px;
  overflow-wrap: break-word;
  border: 1px solid #ccc; /* 方便查看容器范围 */
}
<div>
  12333-2333-233-23339392-332332323
</div>

内容的提问来源于stack exchange,提问作者Abhishek Kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 14:35:11