特殊字符JS正则?

const str = "sf-321-3Aaa2131232143124434@*5454353-678788"
如何使用正将str中第8位后如果含有特殊字符,删除特殊字符后的所有内容得到:
sf-321-3Aaa2131232143124434

阅读 2k
4 个回答

这样?

const str = "sf-321-3Aaa2131232143124434@*5454353-678788";

str.match(/^(.{8,}?)[@*].*$/)[1];

要看你怎么去定义特殊内容了
目测你这段文本中就@*这两个字符是特殊内容

function replace(string,startLen){
    const start = string.slice(0,startLen)
    const end =  string.slice(startLen)
    //const reg = /[^\w-]/gi
    const reg = /(?=[^\w-]).*/gi
    return start + end.replace(reg,()=>{
      return ''
    })
}
replace("sf-321-3Aaa2131232143124434@*5454353-678788",8) //'sf-321-3Aaa21312321431244345454353-678788'

看了你的回复,这事儿不适合用正则表达式来处理。最简单的就是用循环来处理,找到特殊字符立即break出去就完事儿了。

str.replace(/(?<=.{8,})([@*].*$)/, '')

str.replace(/[^\w-].*/,'');

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题