怎么获取字符串中的第一个中文前的字符?

午休过后,网易云放起,耳机带起,茶水泡起......某不知名的十八线小城市的程序媛,才思泉涌般地正啃哧啃哧重构优化代码。突然微信消息一阵刷屏,发现小学弟有问题要和我探讨,应前端小学弟的邀请,我又开始营业啦!(完善中......)

话不多啥,先列出问题:

Q: 如何获取字符串中的第一个中文之前的内容?

# 例如:let str = 'abcd1234efgC123陈陈cbjrcbhjf,.'
# 想要得到 'abcd1234efgC123',该怎么办呢?
  let str = 'abcd1234efgC123陈陈cbjrcbhjf,.';
  let value = str.match(/^[^\u4e00-\u9fa5]+/g, '');
  console.log(value);  # [abcd1234efgC123]

衍生问题1: 如何获取字符串中的第一个中文及其以后的字符?

# 例如:let str = 'abcd1234efgC123陈陈cbjrcbhjf,.'
# 想要得到 '陈陈cbjrcbhjf,.',该怎么办呢?
  let str = 'abcd1234efgC123陈陈cbjrcbhjf,.';
  let value = str.replace(/^[^\u4e00-\u9fa5]+/g, '');
  console.log(value);  # '陈陈cbjrcbhjf,.'

衍生问题2: 如何获取字符串中的第一个中文?

# 例如:let str = 'abcd1234efgC123陈不多cbj不多呀rcbhjf,.'
# 想要得到 第一个中文,该怎么办呢?
  let str = 'abcd1234efgC123陈陈cbjrcbhjf,.';
  let value = str.replace(/^[^\u4e00-\u9fa5]+/g, '')[0];
  console.log(value);  # '陈'
  
# 想要得到 第一个中文在字符中的位置,该怎么办呢?
  let str = 'abcd1234efgC123陈陈cbjrcbhjf,.';
  let value = str.replace(/^[^\u4e00-\u9fa5]+/g, '')[0];
  let index = str.indexOf(value);
  console.log(index); # 15
posted @ 2021-05-27 16:52  Vera_min  阅读(467)  评论(0编辑  收藏  举报