J'ai une chaîne
var str = "& & & This is&test release * this is rest release & &";
var str2="";
var str1=str.split(' ');
for(var i=0;i<str1.length;i++) {
if(/^[0-9a-zA-Z]/.test(str1[i])) {
str1[i]=str1[i].replace(/[^a-zA-Z ]/g, "")
}
str2=str1.join(' ');
}
console.log(str2); Input:
"& & This istest release & this is rest release &";
La sortie doit être
"& & This istest release this is rest release &";
Mais je reçois le résultat
string ="& & This is&test release & this is rest release &";
Mon code:
string= "& & This is&test release & this is rest release &"; Output ="& & This istest release this is rest release &"
4 Réponses :
Je ne suis pas sûr des espaces blancs dans la chaîne ici (en avez-vous réellement besoin, mais voici une alternative que vous pouvez essayer)
let string = "& & This is&test release & this is rest release &";
let a = string.split("&").map(el => {
if (el == "" || el == " ") {
el = " &"
}
return el
})
let result = a.join(""); // join acc to gap you want
console.log(result)
Essayez
let s= "& & This is&test release & this is rest release &"; let o= s.replace(/^([& ]*)(.*?)([& ]*)$/, (m,a,b,c)=> a+b.replace(/&/g,'')+c); console.log(o);
Voici quelque chose que j'ai proposé et qui fonctionnera avec tous les caractères spéciaux.
& & This is test release this is rest release &
Sortie:
var str = "& & This is&test _&&release & this_is rest release &"; var replacedString = str.replace(/(\w\s*)([^a-zA-Z0-9]+)(\s*\w)/g, "$1 $3"); console.log(replacedString);
Le modèle de remplacement correspondra à n'importe quel nombre de caractères spéciaux entre n'importe quel caractère alphanumérique.
Et ça? cela fonctionne parfaitement. J'ai divisé la chaîne pour commencer, au milieu et à la fin. puis remplacé les caractères spéciaux uniquement au milieu, puis joint les 3 parties en arrière.
string= "& & This is&test release & this is rest release &"; i=string.search(/[\w\s]/i)//first letter j=string.search(/[\w\s][^\w\s]*$/i)//last letter start=string.substr(0,i) middle= string.substr(i,j-i+1) end=string.substr(j+1) middle=middle.replace(/[^\w\s]/gi,"")//replace only in the middle output=start+middle+end console.log(output)
J'espérais que je vous ai aidé.
Quel est votre code? Quelles sont les exigences réelles?
Salut a essayé comme ça
Essayez
str.replace (/ (^ [^ \ w \ s] + | [^ \ w \ s] + $) | [^ \ w \ s] / g, "$ 1")Vous venez d'ajouter votre code à la question et vous obtenez en fait
& & & Cette dernière version * ceci est une version de repos & &. Cela semble attendu.@ user2644839 Vous pouvez accepter une réponse (si cela vous aide) en cliquant sur le gros bouton à cocher gris sur son côté gauche. Si vous le souhaitez, vous pouvez ajouter +10 points à n'importe quel auteur de toute bonne réponse en cliquant sur le triangle gris supérieur