求个正则替换内容

good-code 2020-01-17 05:06:14
请大神写个JS正则将:ABCD123-测试数据测试数据 替换成 ABCD123

即 去掉字符串- 后面的中文 含-

注:字符串可能包含括号()
如:
(ABCD123-测试数据测试数据)

(ABCD123)


...全文
274 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
必须正则吗?不要正则使用其他的方法行不行? var str = "AB-CD01-001-000.01-测,~#%&^(*&*&()*_,试数据TEST123"; str.slice(0, str.indexOf('-'))
good-code 2020-01-19
  • 打赏
  • 举报
回复
引用 5 楼 天际的海浪 的回复:
[quote=引用 4 楼 good-code 的回复:] [quote=引用 3 楼 天际的海浪 的回复:] str.replace(/-[\u4e00-\u9fa5]+/,"")
使用该正则可以替换,但只替换了一次 能否实现全量替换 只要有相关的都替换掉呢?[/quote] str.replace(/-[\u4e00-\u9fa5]+/g,"") [/quote] AB-CD01-001-00001-测试数据TEST123 这种也无法直接取到最后一个字符的前面所有内容 结果:AB-CD01-001-00001
good-code 2020-01-19
  • 打赏
  • 举报
回复
引用 5 楼 天际的海浪 的回复:
[quote=引用 4 楼 good-code 的回复:] [quote=引用 3 楼 天际的海浪 的回复:] str.replace(/-[\u4e00-\u9fa5]+/,"")
使用该正则可以替换,但只替换了一次 能否实现全量替换 只要有相关的都替换掉呢?[/quote] str.replace(/-[\u4e00-\u9fa5]+/g,"") [/quote] 你好,表达式无法对这种适用了:ABCD1234-测试HH以及UI测试 "ABCD1234-测试HH以及UI测试".replace(/-[\u4e00-\u9fa5]+/g, "") 出来的结果变成ABCD1234HH以及UI测试 并不是-前面的那一串,能处理吗?
good-code 2020-01-19
  • 打赏
  • 举报
回复
引用 10 楼 天际的海浪 的回复:
[quote=引用 9 楼 good-code 的回复:] [quote=引用 8 楼 天际的海浪 的回复:] 你要把替换的规则详细的说清楚,不然别人写的正则可能只适用你给出的例子。 .replace(/-[\u4e00-\u9fa5\w]+(?![\u4e00-\u9fa5\w]|-)/g,"")
.replace(/-[\u4e00-\u9fa5\w]+(?![\u4e00-\u9fa5\w]|-)/g,"") 就是想替换掉字符串内容第一个字符是-后面的所有内容,不管第一个字符 - 后面是中文 数字 字母标点 所有内容都替换为空 var str='AB-CD01-001-00001-测试' 输出:AB 即可 [/quote] 标点都包括哪些?下面这个包括 中文的 ,。 和英文的 _,. "AB-CD01-001-000.01-测,试数据TEST123".replace(/-[\u4e00-\u9fa5\w\-,。,\.]+/g,"") [/quote] 包括所有字符内容 就是包括任意字符
天际的海浪 2020-01-19
  • 打赏
  • 举报
回复
引用 9 楼 good-code 的回复:
[quote=引用 8 楼 天际的海浪 的回复:] 你要把替换的规则详细的说清楚,不然别人写的正则可能只适用你给出的例子。 .replace(/-[\u4e00-\u9fa5\w]+(?![\u4e00-\u9fa5\w]|-)/g,"")
.replace(/-[\u4e00-\u9fa5\w]+(?![\u4e00-\u9fa5\w]|-)/g,"") 就是想替换掉字符串内容第一个字符是-后面的所有内容,不管第一个字符 - 后面是中文 数字 字母标点 所有内容都替换为空 var str='AB-CD01-001-00001-测试' 输出:AB 即可 [/quote] 标点都包括哪些?下面这个包括 中文的 ,。 和英文的 _,. "AB-CD01-001-000.01-测,试数据TEST123".replace(/-[\u4e00-\u9fa5\w\-,。,\.]+/g,"")
good-code 2020-01-19
  • 打赏
  • 举报
回复
引用 8 楼 天际的海浪 的回复:
你要把替换的规则详细的说清楚,不然别人写的正则可能只适用你给出的例子。 .replace(/-[\u4e00-\u9fa5\w]+(?![\u4e00-\u9fa5\w]|-)/g,"")
.replace(/-[\u4e00-\u9fa5\w]+(?![\u4e00-\u9fa5\w]|-)/g,"") 就是想替换掉字符串内容第一个字符是-后面的所有内容,不管第一个字符 - 后面是中文 数字 字母标点 所有内容都替换为空 var str='AB-CD01-001-00001-测试' 输出:AB 即可
天际的海浪 2020-01-19
  • 打赏
  • 举报
回复
你要把替换的规则详细的说清楚,不然别人写的正则可能只适用你给出的例子。 .replace(/-[\u4e00-\u9fa5\w]+(?![\u4e00-\u9fa5\w]|-)/g,"")
天际的海浪 2020-01-17
  • 打赏
  • 举报
回复
引用 4 楼 good-code 的回复:
[quote=引用 3 楼 天际的海浪 的回复:] str.replace(/-[\u4e00-\u9fa5]+/,"")
使用该正则可以替换,但只替换了一次 能否实现全量替换 只要有相关的都替换掉呢?[/quote] str.replace(/-[\u4e00-\u9fa5]+/g,"")
good-code 2020-01-17
  • 打赏
  • 举报
回复
引用 3 楼 天际的海浪 的回复:
str.replace(/-[\u4e00-\u9fa5]+/,"")
使用该正则可以替换,但只替换了一次 能否实现全量替换 只要有相关的都替换掉呢?
天际的海浪 2020-01-17
  • 打赏
  • 举报
回复
str.replace(/-[\u4e00-\u9fa5]+/,"")
good-code 2020-01-17
  • 打赏
  • 举报
回复
引用 1 楼 天际的海浪 的回复:
str.replace(/-[^)]+/,"")
innerHTML.replace(/-[^)]+/, "") 替换后 所有都是空白的,,
天际的海浪 2020-01-17
  • 打赏
  • 举报
回复
str.replace(/-[^)]+/,"")

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧