Regex 修正正则表达式
我需要帮助为字符串编写正则表达式,该字符串应包含字母数字符号,并且只包含以下符号之一:#、?、$、% 例如:abx12A 35; we正常,但fsa?#ds不正常 我尝试了类似于/[a-zA-z0-9][#?$%]{0,1}/的东西,但它不起作用。 有什么想法吗? 谢谢类似于:Regex 修正正则表达式,regex,Regex,我需要帮助为字符串编写正则表达式,该字符串应包含字母数字符号,并且只包含以下符号之一:#、?、$、% 例如:abx12A 35; we正常,但fsa?#ds不正常 我尝试了类似于/[a-zA-z0-9][#?$%]{0,1}/的东西,但它不起作用。 有什么想法吗? 谢谢类似于: ^[a-zA-Z0-9]*[#?$%]?[a-zA-Z0-9]*$ 应该这样做(并且,根据您的正则表达式引擎,您可能需要转义一个或多个特殊字符) 它基本上是来自“alpha”类型类的零个或多个,然后是来自“特殊”类型类
^[a-zA-Z0-9]*[#?$%]?[a-zA-Z0-9]*$
应该这样做(并且,根据您的正则表达式引擎,您可能需要转义一个或多个特殊字符)
它基本上是来自“alpha”类型类的零个或多个,然后是来自“特殊”类型类的零个或一个,再次是零个或多个“alpha”
您可以根据需要调整每个字符类中包含的内容,但这是在大量其他内容中获取其中一个内容的一般方法。如果您也需要匹配空字符串,则需要使用
^[a-zA-Z0-9]*(?:[#?$%][a-zA-Z0-9]*)?$
见
详细信息:
-字符串的开头^
-零个或更多字母数字[a-zA-Z0-9]*
-正好出现一次:(?:[#?$%][a-zA-Z0-9]*)?
-集合中的字符[#?$%]
-零个或更多字母数字[a-zA-Z0-9]*
-字符串结尾$
*
替换为+
:
^[a-zA-Z0-9]+(?:[#?$%][a-zA-Z0-9]+)?$
^ ^
试试这个
const regex=/^[a-zA-z0-9]*[#?$%]?[a-zA-z0-9]*$/
常量输入=[
“abx12A#我们”,
“a#”,
"a",,
“a#a”
]
常量失败输入=[
“fsa?#ds”
]
console.log('=============测试应成功=========================='))
for(perfectInputs的const perfectInput){
常量结果=正则表达式测试(perfectInput)
log(`test${perfectInput}:${result}`)
console.log()
}
console.log('=============测试应失败=========================='))
for(失败输入的常量失败输入){
常量结果=正则表达式测试(失败输入)
log(`test${failedInput}:${result}`)
console.log()
}
如果特殊字符可以位于字符串的开头或结尾,则可以使用前瞻:
^(?=[^#?$%]*[#?$%]?[^#?$%]*$)[a-zA-Z0-9#?$%]+$
\\ uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
\_____________/----其他条件
可能/^[a-zA-Z0-9]+(?:[#?$%][a-zA-Z0-9]+)?$/
?a-z
->a-z
。
/^(?=[^#?$%]*[#?$%]?[^#?$%]*$)[a-zA-Z0-9#?$%]*$/