javascript url 安全文件名安全字符串

标签 javascript regex string filenames

寻找一个正则表达式/替换函数来获取用户输入的字符串,比如“John Smith's Cool Page”,并返回一个文件名/url 安全字符串,如“john_smith_s_cool_page.html”,或类似的东西。

最佳答案

好吧,这是一个替换任何不是字母或数字的东西,并将其全部变成小写,就像你的例子一样。

var s = "John Smith's Cool Page";
var filename = s.replace(/[^a-z0-9]/gi, '_').toLowerCase();

解释:

正则表达式是/[^a-z0-9]/gi。好吧,实际上最后的 gi 只是一组在使用表达式时使用的选项。

  • i 表示“忽略大小写差异”
  • g 表示“全局”,这实际上意味着应该替换每个匹配项,而不仅仅是第一个。

所以我们所看到的实际上只是 [^a-z0-9]。让我们逐步阅读它:

  • [] 定义了一个“字符类”,它是一个单字符列表。如果您编写 [one],那么它将匹配“o”或“n”或“e”。
  • 但是,字符列表的开头有一个^。这意味着它应该只匹配列表中的字符。
  • 最后,字符列表是a-z0-9。将其读作“a 到 z 和 0 到 9”。这是 abcdefghijklmnopqrstuvwxyz0123456789 的简写方式。

基本上,正则表达式的意思是:“找到不在‘a’和‘z’之间或‘0’和‘9’之间的每个字母”。

关于javascript url 安全文件名安全字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8485027/

相关文章:

php - 如何从字符串的中间删除撇号

javascript - 如何使用正则表达式提取文本?

java - 从 AttributedString 获取文本(纯字符串)——怎么做,为什么这么难?

javascript - 将图像属性更改为<li>示例标题</>

javascript - 计算对象数组中的不同属性

mysql - 通过正则表达式连接 MySQL 表(下划线后)

php - 特定英国邮政编码区号所需的 preg_match 正则表达式

c - snprintf 和字符串数组语法

javascript - 如何检测网页中使用了哪一种定义的字体?

javascript - Brain.js 将训练添加到初始训练中而无需完全重新训练