我想删除字符串开头和结尾的特殊字符。
preg_replace('/[^a-zA-Z0-9_ %'[']'.'(')%&-]/s', '', $String);
从整个文件中删除特殊字符
我想要的是,如果字符串是'S-O@,它应该返回SO
帮忙吗?
试试这个:
preg_replace( '/^'W*(.*?)'W*$/', '$1', $string )
/* -----------------------------------------------------------------------------------
^ the beginning of the string
'W* non-word characters (all but a-z, A-Z, 0- 9, _) (0 or more times (matching the most amount possible))
( group and capture to '1:
.*? any character except 'n (0 or more times(matching the least amount possible))
) end of '1
'W* non-word characters (all but a-z, A-Z, 0-9, _) (0 or more times (matching the most amount possible))
$ before an optional 'n, and the end of the string
------------------------------------------------------------------------------------- */
PHP的trim
函数可能会帮助您,使用第二个参数传递您想要删除的字符。问题是,你必须列出你想要删除的字符,而不是你想要保留的字符。
trim($string,$remove);
其中$remove包含您希望从开始和结束处删除的字符
我们创建了一个函数并检查javascript的特殊字符
var string = "@@@@@M@@@@U###@@";
var output = filterSpecialChar(string);
console.log(output); //M@@@@U
function filterSpecialChar(string){
var arrayString = string.split("");
var count = arrayString.length/2;
var check_float = Number(count) === count && count % 1 !== 0;
var format = /[!@#$%^&*()_+'-='[']{};':"''|,.<>'/?]+/;
if(check_float == true){
var start_length = parseInt(count)+1;
var end_length = parseInt(count);
}else{
var start_length = parseInt(count);
var end_length = parseInt(count);
}
for(var i=0;i<parseInt(arrayString.length);i++){
if(format.test(arrayString[i])){
arrayString[i] = null;
}else{
break;
}
}
for(var i=arrayString.length-1;i>0;i--){
if(format.test(arrayString[i])){
arrayString[i] = null;
}else{
break;
}
}
var arrayString = arrayString.filter(function(data){return data != null});
return arrayString.join('');
}
尝试使用锚点:
^[^a-zA-Z0-9_ %'[']'.'(')%&-]|[^a-zA-Z0-9_ %'[']'.'(')%&-]$