簡體   English   中英

需要刪除句子中部的特殊字符,但不刪除字符串的開頭和結尾

[英]need to remove special characters in the midle of sentence but not starting and ending of the string

我有一個弦

string= "& & This is&test release & this is rest release &";
Output ="& & This istest release  this is rest release &"

輸入:

string ="& & This is&test release & this is rest release &";

輸出應為

"& & This istest release  this is rest release &";

但是獲得輸出是

"& & This istest release & this is rest release &";

我的代碼:

 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); 

我不確定這里的字符串中的空格(您實際上是否需要它們,但這是您可以嘗試的替代方法)

 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) 

嘗試

 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); 

我想出了一些可以與任何特殊字符一起使用的東西。

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);

輸出:

& & This is test  release  this is rest release &

替換模式將匹配任何字母數字字符之間的任意數量的特殊字符。

那這個呢? 它完美地工作。 我將字符串拆分為開始,中間和結尾。 然后僅在中間替換特殊字符,然后將3個部分全部合並回去。

 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) 

希望我能幫到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM