正则表达式将日期附加到具有文件扩展名和没有文件扩展名的字符串

我有字符串,我需要将日期附加到具有文件扩展名和没有文件扩展名的字符串。

例如

  1. 水果

  2. 水果.doc

  3. 水果.docx

  4. 水果.苹果.docx

预期的结果是

  1. 水果_18-9-2020

  2. Fruits_18-9-2020.doc

  3. Fruits_18-9-2020.docx

  4. 水果.Apple_18-9-2020.docx

我试过这个

  var str = 'Fruits.txt'; 
  var txt = str.replace(/$/i,"_123");

但它给了我不正确的 Fruits.txt_123

我该怎么做呢?


Qyouu
浏览 80回答 1
1回答

弑天下

请改用此正则表达式:str.replace(/(?=\.[^\.]+$)|(?<=^[^\.]+$)/,&nbsp;"_123");在regex101上测试它!说明:将|有扩展名(如 .doc,左侧部分:)(?=\.[^\.]+$)或没有扩展名(右侧部分(?<=^[^\.]+$):)的情况分开。扩展:获取结束前最后一个点的位置,并在匹配前插入附加字符串(使用前瞻)。没有扩展名:如果在结尾之前的整个字符串中没有点,则只需在末尾插入文本(使用后视)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript