使用Javascript反转字符串而不反转特殊字符

使用Javascript反转字符串而不反转特殊字符,javascript,string,reverse,Javascript,String,Reverse,我无法在此代码中找到问题。我想在不反转特殊字符的情况下反转字符串。因此,如果字符串是'ab#$cd!',输出将是'dc#$ba!'我得到的输出是'ab#$cd!'(与输入相同) 请在代码中查找问题 函数isAlphabet(x){ 如果((x>='A'&&x='A'&&x您不能以这种方式修改字符串,那么字符串在JavaScript中是不可变的 var str=“abcdef”; console.log(str[1]) str[1]=“x” console.log(str)这里有一个snipp

我无法在此代码中找到问题。我想在不反转特殊字符的情况下反转字符串。因此,如果字符串是
'ab#$cd!',输出将是
'dc#$ba!'我得到的输出是
'ab#$cd!'(与输入相同)

请在代码中查找问题

函数isAlphabet(x){

如果((x>='A'&&x='A'&&x您不能以这种方式修改字符串,那么字符串在JavaScript中是不可变的

var str=“abcdef”;
console.log(str[1])
str[1]=“x”

console.log(str)
这里有一个snippit,它使用split()、pop()、push()和reverse()方法

功能反向限制(str){
var splitString、感叹号mark、reversearlay、joinArray;
splitString=str.split(“”);
感叹号标记=splitString.pop();
reverseArray=splitString.reverse();
倒推(感叹号);
joinArray=reverseArray.join(“”);
返回数组;
}
console.log(reverseString(“ab#$cd!”);
当'abcd#$ef!'时,您希望看到什么?在您的示例中,特殊字符前的字母数与最后一个相同。
var str = "#hello$worl!d" var spclindx = []; var final = ''

var onlyalpha = str.match(/[a-z]|[A-Z]/g).reverse();

[...str].map((x, key) => { if (!x.match(/[a-z]/i)) { spclindx.push(key + '.' + x) } })

spclindx.map(y => { var sp = y.split('.'); console.log(sp) final = onlyalpha.splice(sp[0], 0, sp[1]) final = onlyalpha.join('') })

console.log(final)