用 split("-") 可直接按英文连字符切分字符串,返回子字符串数组;连续或首尾连字符会产生空元素,可用 filter(boolean) 清理;多分隔符或 unicode 变体需用正则匹配或先归一化。

用 split() 方法就能直接按连字符切分字符串,得到数组。
使用 split("-") 拆分最简单
JavaScript 中的 split() 接收一个分隔符,返回由子字符串组成的数组。连字符是普通字符,不需要转义。
-
正确写法:
"hello-world-test".split("-")→["hello", "world", "test"] - 空字符串或只有连字符时会得到包含空元素的数组,例如
"-a-".split("-")→["", "a", ""] - 如果原字符串不含连字符,结果是原字符串组成的单元素数组:
"abc".split("-")→["abc"]
需要过滤空字符串?加一步 filter(Boolean)
当输入可能含连续连字符(如 "a--b")或首尾连字符时,split 会产生空字符串。可用 filter 清理:
-
"a--b-c-".split("-").filter(Boolean)→["a", "b", "c"] -
Boolean作为回调能自动剔除所有 falsy 值(""、undefined、null等)
想忽略大小写或多种分隔符?先用 replace + 正则
如果实际需求更复杂,比如要统一处理下划线、空格和连字符,可先归一化再拆分:
"Hello_world-test case".replace(/[_\s]+/g, "-").split("-")- 或一步到位:
"Hello_world-test case".split(/[-_\s]+/),正则中[-_\s]+表示一个或多个连字符、下划线或空白字符
注意 Unicode 连字符变体(如中文破折号)
标准连字符 -(U+002D)和全角连接号、中文破折号(如 — U+2014、– U+2013)不是一回事。若数据来源不规范,需扩展匹配:
-
str.split(/[-—–―]/)可同时处理常见连字符变体 - 更稳妥的做法是先标准化:把各种连接符号统一替换成英文连字符再 split











