我有一个字符串,例如:
var string = 'This is a test sentence. Switch the characters. i .';
我想切换每次出现的字母“i”及其后面的字符的位置,除非后面的字符是“t”或“空格”或“换行符”等非字符。所以结果输出应该是这样的:
Thsi si a test sentence. Switch the characters. i . // switches 's' but not 't' and 'space'
使用正则表达式可以完成这样的任务吗?我正在使用的字符是 unicode 字符。 “我”只是一个例子。这意味着匹配所有字符并不是一个好主意。可能是一个not表达式?我尝试了一些循环替换,但这些并不优雅(或高效)。有什么想法吗?
最佳答案
您可以使用具有该形式的正则表达式的替换:
var string = 'This is a test sentence. Switch the characters. i .';
var result = string.replace(/(i)(?![t\s])(.)/g, "$2$1");
(i)
匹配 i
并将其捕获到变量 $1
中。
(?![t\s])
防止 t
和空格的匹配。
(.)
匹配任何其他字符并将其捕获到变量 $2
中。
关于javascript - 使用 javascript/jQuery 切换字符位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21406495/