js上传文件名不能包含特殊字符

JavaScript017

js上传文件名不能包含特殊字符,第1张

判断 JS “字符串”中包含某个“字符串”,最好的办法就是 String.prototype.includes,这个 api 被发明出来就是干这个的,它直接返回布尔值,立刻就能拿来用。

如果你需要兼容某些老旧浏览器,那么就用 String.prototype.indexOf,然后判断它的返回值是不是 -1,-1 相当于 false,其它值相当于 true。

这个直接用javascript的正则表达式取就可以了。

下面是简单的代码实现,仅供参考:

var a = 'asdfwlf!@#@##$%$%^SFDGD^%^%&&$#'

console.log(a.match(/[\~!@#$%^&*-_]/g))

//这个结果是:["!", "@", "#", "@", "#", "#", "$", "%", "$", "%", "^", "S", "F", "D", "G", "D", "^", "%", "^", "%", "&", "&", "$", "#"],出来的是一个数组。

可以通过join的方式编程一个字符串。

console.log(a.match(/[\~!@#$%^&*-_]/g).join())

//结果是:!,@,#,@,#,#,$,%,$,%,^,S,F,D,G,D,^,%,^,%,&,&,$,#

如果不想要',' ,还可以再把','去掉。

console.log(a.match(/[\~!@#$%^&*-_]/g).join(''))

//结果是:!@#@##$%$%^SFDGD^%^%&&$#

1、可以使用textarea进行显示;

2、首先进行html编码后再显示:

使用下面的函数html_encode对html字符串进行编码然后显示:

function html_encode(str)  

{  

  var s = ""  

  if (str.length == 0) return ""  

  s = str.replace(/&/g, "&gt")  

  s = s.replace(/</g, "&lt")  

  s = s.replace(/>/g, "&gt")  

  s = s.replace(/ /g, "&nbsp")  

  s = s.replace(/\'/g, "&#39")  

  s = s.replace(/\"/g, "&quot")  

  s = s.replace(/\n/g, "<br>")  

  return s  

}  

 

function html_decode(str)  

{  

  var s = ""  

  if (str.length == 0) return ""  

  s = str.replace(/&gt/g, "&")  

  s = s.replace(/&lt/g, "<")  

  s = s.replace(/&gt/g, ">")  

  s = s.replace(/&nbsp/g, " ")  

  s = s.replace(/&#39/g, "\'")  

  s = s.replace(/&quot/g, "\"")  

  s = s.replace(/<br>/g, "\n")  

  return s  

}