如何验证字符串是否是有效的JavaScript / jQuery变量名称?

时间:2016-06-10 16:40:58

标签: javascript jquery arrays replace

是否有精简和简化的正则表达式,它将检查和替换字符串中不符合JavaScript变量名称语法规范的字符。我写了以下内容:

的jQuery

var content = $('pre:eq(0)').html();
var tmp = content.split("\n");
var validVar = [];
$.each(tmp, function(index, value) {
  validVar.push(tmp[index].replace("!", "").replace("(", "").replace(",", "").replace(")", "").replace(".", "").replace("'", "").replace("&", "").replace(" ", "").replace("/", "").replace(/\s+/g, '').replace("-", ""));
});

var validName = validVar.toString().split(",").join("<br/>");
console.log(validName);
$('pre:eq(1)').html(validName);

HTML

<table>
  <tbody>
    <tr>
      <td class='header zero'>Original</td>
      <td class='header'>Variable Name</td>
    </tr>
    <tr>
      <td><pre>Organizer
CapRate Events (CRE)
CTIA (Cellular Telephone Industries Association)
Dubai World Trade Centre (DWTC)
O'Reilly Conferences
PMI (Project Management Institute)
SYS-CON Events
The Software Engineering Institute (SEI)
World Academy of Science, Engineering and Technology</pre></td>
      <td><pre class='valid'></pre></td>
    </tr>
  </tbody>
</table>

具体来说,行:

validVar.push(tmp[index].replace("!", "").replace("(", "").replace(",", "").replace(")", "").replace(".", "").replace("'", "").replace("&", "").replace("&nbsp;", "").replace("/", "").replace(/\s+/g, '').replace("-", ""));

应该压缩成一个函数。

此外,如果我们能够以一种格式良好的形式获得变量,例如驼峰式情况,或至少使第一个字符始终为小写。

var content = $('pre:eq(0)').html();
var tmp = content.split("\n");
var validVar = [];
$.each(tmp, function(index, value) {
  validVar.push(tmp[index].replace("!", "").replace("(", "").replace(",", "").replace(")", "").replace(".", "").replace("'", "").replace("&", "").replace("&nbsp;", "").replace("/", "").replace(/\s+/g, '').replace("-", ""));
});

var validName = validVar.toString().split(",").join("<br/>");
console.log(validName);
$('pre:eq(1)').html(validName);
pre {
  color: green;
  font-size: 1.13em;
  font-family: "Courier New", Courier, monospace;
}
table {
  border-collapse: collapse;
  border: solid 1px #000;
}
td {
  border: solid 1px #000;
  background-color: #CCC;
  text-align: left;
}
td.header {
  text-align: center;
  font-weight: bold;
  font-family: arial;
  font-size: 1.35em;
  background-color: #000;
  color: #FFF;
}
td.zero {
  border-right: solid 1px #CCC;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<table>
  <tbody>
    <tr>
      <td class='header zero'>Original</td>
      <td class='header'>Variable Name</td>
    </tr>
    <tr>
      <td><pre>Organizer
CapRate Events (CRE)
CTIA (Cellular Telephone Industries Association)
Dubai World Trade Centre (DWTC)
O'Reilly Conferences
PMI (Project Management Institute)
SYS-CON Events
The Software Engineering Institute (SEI)
World Academy of Science, Engineering and Technology</pre>
      </td>
      <td><pre class='valid'></pre>
      </td>
    </tr>
  </tbody>
</table>

0 个答案:

没有答案