JavaScript正则表达式 - 字符之间的空格?

时间:2015-05-16 19:18:39

标签: javascript regex

我发现a thread in the c# forums正是我需要的,但我需要用JavaScript。基本上我需要正则表达式,在短语的每个字符之间放置空格。

例如,

TEST

会变成

T E S T

解释会有所帮助,我对此不熟悉,所以请保持友善:)

我在一个只允许正则表达式代码的程序中构建我的项目,所以需要这样做。

3 个答案:

答案 0 :(得分:5)

"TEST".replace(/(.)(?=.)/g, "$1 ")
// Outputs
// => T E S T
  • (.)匹配单个字符。第1组中的捕获($1

  • (?=.)积极向前看。检查捕获的角色是否后跟另一个角色。

  • "$1 "替换字符串。 $1包含第1组中捕获的字符,后跟空格

  • g全局修饰符。对字符串中的所有匹配应用全局替换。

Regex Demo

答案 1 :(得分:2)

您可以使用以下内容:

(.)(?!$)

并替换为'$1 '(空格)

请参阅DEMO

答案 2 :(得分:0)

你说你想在JavaScript中使用它,然后你编辑了你的问题(在我发布这个答案之后)说你必须使用正则表达式。如果没有(对我来说很奇怪)的要求,您可以在JavaScript中使用split()join()执行此操作,而无需使用正则表达式。

var myString = "TEST";
var result = myString.split('').join(' ');
console.log(result); // "T E S T"

对于这个以及到目前为止提供的所有正则表达式解决方案,如果你有特殊字符,这将是有问题的。例如,'foo bar'.split('').join(' ');会返回意外结果。 'foo bar'.replace(/(.)(?=.)/g, "$1 ");'foo bar'.replace(/(.)(?!$)/g, "$1 ");也是如此。但如果你知道你正在处理(比方说)ASCII安全文本,那么就不会有任何问题。