javascript - JS\TS - 无法在基于多个特殊字符的字符串中添加空格

标签 javascript string typescript

我正在寻找一种智能方法来在长字符串中的特殊字符后添加空格。

let str = "this\is\an\example\for\a\long\string";
str = str.split("\\").join("\\ ");

这会产生:

"this\ is\ an\ example\ for\ a\ long\ string";

我正在寻找更通用的东西来一次捕获多个特殊字符,如下所示:

let str = "this.is.a\long-mixed.string\with\many.special/characters";
str = str.split(/[.\-_]/).join(/[. \- _ ]/); //note the white spaces after the dot, hyphen and slash. I need to cover as much special chars as possible.

编辑

我需要这个来支持多语言。所以基本上英语\阿拉伯语\希伯来语单词不应该有空格,而只能在特殊字符后插入空格。

最佳答案

你可以这样做

因此,通过替换,我可以匹配除字母和数字之外的任何内容。而不是简单地添加一个空格。

let str = "this.is.a\long-mixed.string\with\many.special/characters";
str = str.replace(/([\W_])/g, "$1 ");
console.log(str);

([\W_]) - 匹配除字母和数字之外的任何内容。

关于javascript - JS\TS - 无法在基于多个特殊字符的字符串中添加空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53804123/

相关文章:

Python将长字符串转换为不带单引号的列表

java - 有没有一种方法可以使用一个 'matches' 函数检查多个条件?

javascript - 将 AJAX 调用获取的数据附加到现有列表以进行延迟加载

javascript - 多个 div 的 jQuery 范围 slider 值框

javascript - 在 javascript 中遍历颜色

javascript - 用于替换标点符号(不包括负数)的正则表达式

typescript - npm 包的简单导入语句

typescript - 在 TypeScript 中,什么是 !取消引用成员时使用(感叹号/感叹号)运算符?

javascript - 仅当日期是今天且带有 *ngIf 时才应用类(class)

javascript - Angular.JS 如何为即时搜索添加延迟?