Javascript正则表达式再次测试没有特殊字符或空格的单个字符串

标签 javascript

我正在为 document.createElement() 编写一个函数包装器,其中我可以传入元素标签名称,例如。 'div' 或传入要创建的完整 html 字符串。我有用于测试 html 标记开始和结束的正则表达式,即“<”或“>”,但现在我想进一步测试字符串中是否有特殊字符。

我有 /^([a-zA-Z]*)?$/g 来测试匹配,但它在空白字符串上失败。我以为 + 会捕捉到这一点,但似乎没有。假设我之前可以测试空字符串,但想知道是否有办法测试这一点。

var strings = ["div","<div>...</div>","div1","1div","div-","[div]","(div)","$div",""];

strings.forEach(function(str, i) {
  /^([a-zA-Z]+)?$/.test(str)
    ? console.log(i, 'OK valid')
    : console.log(i, 'XX invalid');
});

var re = new RegExp('^([a-zA-Z]+)?$','g'); 
strings.forEach(function(str, i) {
  re.test(str)
    ? console.log(i, 'OK valid')
    : console.log(i, 'XX invalid');
});

最佳答案

不确定所有括号的用途,但要更改?到 + 就足够了

var strings = ["div","<div>...</div>","div1","1div","div-","[div]","(div)","$div",""];

strings.forEach(function(str, i) {
  /^[a-zA-Z]+$/.test(str)
    ? console.log(i, 'OK valid')
    : console.log(i, 'XX invalid');
});

var re = new RegExp('^[a-zA-Z]+$','g'); 
strings.forEach(function(str, i) {
  re.test(str)
    ? console.log(i, 'OK valid')
    : console.log(i, 'XX invalid');
});

关于Javascript正则表达式再次测试没有特殊字符或空格的单个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49967247/

相关文章:

javascript - 在 JQuery 中动态设置输入验证范围

javascript - 如何使用反引号在 node.js 中编写多行 MySQL 查询?

javascript - 请求处理程序无法使用 Vision 插件渲染 View

javascript - Jquery 数据目标作为字符串可能吗?

javascript - 在同一段脚本中使用多个 div id

Javascript 奇怪的行为,异步问题?

javascript - 通过从 PHP 返回的 Json 回调 Javascript 函数

javascript - 如何在网页中使用 ECMAScript6 模块

javascript - Webkit-playsinline 在 iphone 上

javascript - 是否有快捷方式或更短的语法来单独接收 req.body 的内容?