当前位置: 首页 > 知识库问答 >
问题:

javascript - js如何替换字符串中的中文空格?

魏凯捷
2024-07-15

js如何替换字符串中的中文空格?

我尝试使用了下面几个方法都不行
str.replace(/[\u3000]/g, ' ')

const fullWidthSpace = String.fromCharCode(12288);
str.split(fullWidthSpace).join('');
str.replace(/[\u3000\u3001\u3002\u3003\u3004\u3005\u3006\u3007\u3008\u3009\u300A\u300B\u300C\u300D\u300E\u300F\u3010\u3011\u3012\u3013\u3014\u3015\u3016\u3017\u3018\u3019\u301A\u301B\u301C\u301D\u301E\u301F\u302A\u302B\u302C\u302D\u302E\u302F]+/g, '');

共有2个答案

殷功
2024-07-15

问题原因:输入法默认都是半角空格,正则表达式其实是没问题的,输入全角空格可以替换
最新:难道是因为输入法切换中英文输入空格,其实输入的都是英文空格
我使用input.value.replace(/[\u3000\s]/g, '')是可以替换的,但是同时也把英文空格去掉了,请问如何只替换中文空格,不替换英文空格呢?

replace(/[\u3000\ufeff\s]+/g, '')这样也是一样的效果,两种都被替换
孙辰阳
2024-07-15

你的第一个尝试几乎是正确的,但可能你的中文空格不是 Unicode 字符 \u3000(全角空格,也称为IDEOGRAPHIC SPACE)。在Unicode中,全角空格的正确编码确实是 \u3000,但如果你发现它不起作用,可能是因为你的字符串中的空格实际上是其他类型的全角字符或空格。

不过,假设你确实想替换 \u3000(全角空格),你的第一个正则表达式是正确的。这里是一个工作示例:

let str = "这是一个包含 中文空格 的字符串"; // 注意这里的中文空格
let replacedStr = str.replace(/[\u3000]/g, ' '); // 使用普通空格替换全角空格
console.log(replacedStr); // 输出: "这是一个包含 中文空格 的字符串"

如果你的字符串中包含其他类型的空格或全角字符,并且你想替换它们,你需要确保你的正则表达式包含了所有这些字符。但请注意,你提供的第二个正则表达式实际上是用于替换一系列的全角标点符号,而不是空格。

如果你想要替换所有可能的全角空格字符(这可能包括不同的全角空格变种),你可能需要扩大你的正则表达式以包含这些字符。但是,通常情况下,\u3000 是最常用的全角空格。

如果你发现 \u3000 不工作,但你的字符串中确实有看起来像空格的字符,那么可能是以下情况之一:

  1. 你的字符串中的空格实际上不是全角空格,而是其他类型的Unicode空格字符。
  2. 你的字符串中的空格是由多个不可见的Unicode字符组成的(例如,一个零宽空格后跟一个全角空格)。

在这种情况下,你可能需要更仔细地检查你的字符串内容,以确定正确的替换策略。

 类似资料:
  • 示例:[可爱]微笑这是测试[笑哭] 目的:将这个字符串中所有中括号表示的文字替换为emoji

  • 问题内容: 如何在Java中用空字符串替换单引号’。我尝试了以下操作,但似乎没有用。 提前致谢。非常感谢您的帮助。(输出应为:Sids den) 谢谢你们的回应。我想我应该对我的问题更加清楚。基本上,我从表中获得特殊字符,并且从同一个表中我们必须用什么值替换那些特殊字符。这是代码片段: 因此,当数据中的evrf有特殊字符’时,我将面临nullpointer异常。请建议如何进行此操作? 问题答案:

  • 如果给一个字符串,比如“去医学院!”例如,如何仅替换偶数字符?问题是,虽然我的代码处理第一个单词,但单词之间的空格本身算作一个字符,并将第二个单词中的替换搞乱,第二个单词的第一个字母被归类为偶数。 这是我的尝试 这将给出输出“gomd!”(第二个字母正确替换为表示偶数,但第二个单词的第一个字母不应替换为“第一个”不是“偶数”。如何使索引忽略空格? 答案最好不包含数组,只包含Char和String方

  • 问题内容: 我的字符串带有多余的空格,每当有多个空格时,我希望它只有一个。 任何人?我尝试搜索Google,但没有任何帮助。 谢谢 问题答案: 像这样:

  • 问题内容: 我正在寻找一种替换文件中的字符串而不将整个文件读入内存的方法。通常我会使用Reader和Writer,例如以下内容: 但是,我想就地进行替换,并且不认为可以同时在同一文件上打开Reader和Writer。另外,我正在使用Java 1.4,因此无法访问NIO,扫描仪等。 谢谢唐 问题答案: 通常无法对文件进行“就地”替换,除非替换的长度与原始长度完全相同。否则,文件将需要增大,从而将所有

  • 我希望我的程序替换输入字符串中的每个元音。

  • 问题内容: 我有一个包含多个空格的字符串。我想用加号代替它们。我以为我可以用 但它只会替换第一次出现的情况。如何获得它来代替所有出现的情况? 问题答案: 这是不需要正则表达式的替代方法:

  • 问题内容: 我正在使用一个喜欢: 我使用的是哪里。这行代码对我不起作用。我想知道自己在做什么错? 问题答案: 尽管看起来可能存在一些语法问题,但是代码看起来或多或少还可以。这是一个工作示例: