javascript - 用于验证字符串的正则表达式,确保单词仅由一个特殊符号分隔

标签 javascript regex

"/(?=.{1,32}$)^[a-zA-Z0-9]([a-zA-Z0-9_\\-.:]*)[a-zA-Z0-9]$/"

我有上面的正则表达式,它只接受一些特殊字符,并确保字符串不应该以特殊符号开头或结尾

当前接受的字符串:

  1. abcd
  2. abcd-gffgfg
  3. abcdeer-errt.ertert-rtr
  4. abcd-._:fgdfgfg(不允许)

当前拒绝的字符串:

  1. abcd-
  2. abcd$fgfg
  3. -&abcd
  4. -abcd

我想修改上面的表达式,使其在任意两个单词之间只接受一个特殊字符,并且只允许一些特殊符号 (._ - :)

建议我如何修改上述正则表达式。

最佳答案

尝试:

const regex = /(?=.{1,32}$)^(([a-zA-Z0-9])+[_\-.:])*([a-zA-Z0-9])+$/
const strs = [
  "abcd-abcd",
  "abcd_fdfg-dfgdg.fgd:dfgdfg",
  "abcd",
  "abcd-._:abcd",
  "abcd:dfgdfg:_:"
]

console.log(strs.map(str => regex.test(str)))

正则表达式基本上表示:(wordchars + 1 个特殊字符)重复 0 次或多次,后跟 wordchars。

关于javascript - 用于验证字符串的正则表达式,确保单词仅由一个特殊符号分隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59422104/

相关文章:

javascript - 需要从 API 获取 Name、Node Name 和 Phase Values

javascript - 乔姆拉!强制我的 concat 加上 '+' 到 "%20"

r - 根据正则表达式拆分data.table列

ruby-on-rails - ruby 正则表达式 - 如何匹配所有内容直到字符 -

javascript - 正则表达式有时返回结果,有时在类似字符串上返回 null

替换字符串中的下标数字

sql - PL/SQL 在多个列和表中查找特殊字符

javascript - 在JS中加载本地json文件

javascript - Jquery-UI 对话框滚动到页面顶部

javascript - 为什么当使用 google-maps v3 上的 MVCObject 更改缩放时我的代码无法提醒 map 的缩放