gpt4 book ai didi

javascript - 正则表达式 - 替换单个字母后除空格外的所有空格

转载 作者:行者123 更新时间:2023-11-30 20:26:57 31 4
gpt4 key购买 nike

在 JavaScript 中,我想用百分比 (%) 替换所有与以下正则表达式不匹配的空格:

\b[a-zA-Z]\s\b

我尝试排除位于单个字符旁边的所有空格并替换所有其他字符。万一:

True that A B C School is great for kids and C D E School is not

除 A-B 和 B-C 和 C-S 之间的空格外,所有空格都应替换为百分比。所以结果是:

True%that%A B C School%is%great%for%kids%and%C D E School%is%not

我读了:

  1. > Regex negative match query
  2. > Replace part of string that doesn't match regex

但它并没有给我最终的答案。

目前query.replace(\b[a-zA-Z]\s\b,'%') 完全替换应该保留的空格。

你能告诉我如何以正确的方式否定我的表情吗?

最佳答案

匹配并捕获您拥有的模式,并匹配其他上下文中的任何其他空格:

var s = "True that A B C School is great for kids and C D E School is not";
var rx = /\b([a-zA-Z]\s)\b|\s/g;
console.log(
s.replace(rx, function($0,$1) { return $1 ? $1 : "%"; })
// ES6+ syntax
// s.replace(rx, ($0,$1) => $1 ? $1 : "%" )
);
// => True%that%A B C School%is%great%for%kids%and%C D E School%is%not

详情

  • \b([a-zA-Z]\s)\b - 一个单词边界,然后是任何 ASCII 字母和一个空格(捕获到第 1 组),后跟一个单词边界<
  • | - 或
  • \s - 1 个空白字符

在匿名方法(或箭头方法)中,$0 代表整个匹配,$1 代表捕获的文本(第 1 组值)。如果第 1 组匹配,我们只返回它的值(因此,保留 1 个字母单词后的空格)。否则,匹配的空格将替换为 %

关于javascript - 正则表达式 - 替换单个字母后除空格外的所有空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50794035/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com