使用split("-")分隔一个范围字符串为字符串有负数怎么办呀。

使用split分隔一个范围字符串为字符串有负数怎么办呀。

比如:"1-2"用split("-")分隔是正常的,但是"-1-2"使用split("-")就不正常了

只要有负数就不正常了。

想过使用正则表达式但是写不出😹

补充一下可能的情况

  • 开始截止都没有:
    1. ""
    1. "-"
  • 只有起始:
    1. "m-" :开始为正数
    1. "-m-" 开始为负数
  • 只有截止:
    1. "-m" 截止为正数
    1. "--m" 截止为负数
  • 开始截止都有:
    1. "m-n" 开始为正数,截止正数
    1. "-m-n" 开始为负数,截止正数
    1. "m--n" 开始正数,截止负数
    1. "-m--n" 开始负数,截止负数
阅读 3.5k
4 个回答
'1--2'.match(/(^\-?\d)-{1}(\-?\d)/); //["1--2", "1","-2"]
'-1--2'.match(/(^\-?\d)-{1}(\-?\d)/); // ["-1--2", "-1","-2"]
'-1-2'.match(/(^\-?\d)-{1}(\-?\d)/); // ["-1-2", "-1","2"]

判断-的位置吧,不过还是用标的符号代替-作为范围比较好

数和数之间不能换个符号分割吗
假如 “-1-2-3-4--5” 自己都不知道哪个是负数哪个是分割符 我觉得设计的不太合理

给你写个正则匹配:

'-1-2-3-4--5'.match(/((?!((?<=\d)-)).)+/g) 
// 结果:["-1", "2", "3", "4", "-5"]
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题