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

Regex删除所有非字母数字,并将空格替换为

谢阳成
2023-03-14

我希望使用正则表达式尝试删除字符串中的所有非字母数字字符,并用

我只想允许基本上按字母顺序排列的单词A-Z和

这是专门准备字符串成为URL的一部分,因此需要符号而不是空格。

我已经查看了< code>/\W /,但是这将删除所有空格和字母数字字符,而我希望尽可能保留空格,然后用符号替换。

我已经搜索了一下,但我似乎找不到一些东西,我希望有人能对此有任何简单的建议。

示例字符串

共有2个答案

莫典
2023-03-14
 str = str.replace(/\s+/g, '+');
 str  = str.replace(/[^a-zA-Z0-9+]/g, "");
  • 第一行将所有空格替换为符号
  • 第二行删除所有非字母数字和非“”符号
郝哲茂
2023-03-14

这实际上相当简单。

假设 str 是您正在清理的字符串:

str = str.replace(/[^a-z0-9+]+/gi, '+');

^表示“不在此字符列表中的任何内容”。[...]组之后的表示“一个或多个”。/gi表示“替换您找到的所有这些,而不考虑大小写”。

因此,任何不是字母、数字或“”的字符段都将转换为单个“”。

要删除带括号的子字符串(如注释中所要求的),请首先执行以下替换:

str = str.replace(/\(.+?\)/g, '');
function replacer() {

  var str = document.getElementById('before').value.
    replace(/\(.+?\)/g, '').
    replace(/[^a-z0-9+]+/gi, '+');

  document.getElementById('after').value = str;
}

document.getElementById('replacem').onclick = replacer;
<p>Before:
  <input id="before" value="Durarara!!x2 Ten" />
</p>

<p>
  <input type="button" value="replace" id="replacem" />
</p>

<p>After:
  <input id="after" value="" readonly />
</p>
 类似资料:
  • 我正在寻找一个整洁的正则表达式解决方案来代替 所有非字母数字字符 所有换行 空白空间的所有多个实例 只有一个空格 对于那些在家里玩的人(以下确实有效) 我的想法是正则表达式可能足够强大,可以在一个语句中实现这一点。我认为我需要的组件是 -删除非字母数字字符 但是,我似乎无法以正确的方式设置正则表达式的样式(以下内容不起作用) 输入 期望输出

  • 问题内容: 我尝试使用此功能,但没有成功- 问题答案: 使用。 注意:删除了空格,因为通常不将其视为字母数字。

  • 我有这个regex来删除所有非字母数字字符。 添加到此行的任何帮助,以用单个空格替换所有多个空格。

  • 所有非字母数字字符 所有换行符 空白的所有多个实例 只有一个空格 对于那些在家里玩的人(以下方法确实管用) 我的想法是,正则表达式可能足够强大,可以在一个语句中实现这一点。我认为id需要的组件是 -删除非字母数字字符 -匹配任何空格集合 -匹配所有新行 -全局、多行、不区分大小写 然而,我似乎无法以正确的方式来设置正则表达式(以下操作不起作用) 输入 所需输出

  • 我正在尝试用Java编写一个正则表达式,它从段落中删除所有非字母数字字符,但单词之间的空格除外。 如何修复此错误?