PHP->;JavaScript正则表达式
我在这里很难受。我正在尝试使用一些服务器端PHP,并介绍一些JavaScript,它们做同样的事情——在用户键入时向用户提供提示。我有以下内容,试图查找所有小写字母、大写字母和数字0次或更多次;然后删除这些字符,留下一个包含所有其他内容的字符串。然后取它的长度,并将其与变量maxSymbols(5)进行比较 我无法正确评估这个。。。我错过了什么PHP->;JavaScript正则表达式,javascript,regex,Javascript,Regex,我在这里很难受。我正在尝试使用一些服务器端PHP,并介绍一些JavaScript,它们做同样的事情——在用户键入时向用户提供提示。我有以下内容,试图查找所有小写字母、大写字母和数字0次或更多次;然后删除这些字符,留下一个包含所有其他内容的字符串。然后取它的长度,并将其与变量maxSymbols(5)进行比较 我无法正确评估这个。。。我错过了什么 else if(passwordValue.replace(/([a-zA-Z0-9])*/, '').length > maxSymbols){
else if(passwordValue.replace(/([a-zA-Z0-9])*/, '').length > maxSymbols){
// Check the maximum number of symbols in the password.
document.getElementById("passwordHint").innerHTML = "You've used too many symbols, " + maxSymbols + " is the maximum.";
document.getElementById("passwordHint").style.color = "red";
}
应该是
.replace(/[a-zA-Z0-9]/g, '')
你应该表现得很好您在第一个字符中搜索的是这些字符中的0个或多个。您需要的是字符类全局替换(g)。您缺少正则表达式的
g
修饰符。如果没有g
,您只能替换第一个匹配项
尝试if(passwordValue.replace(/([a-zA-Z0-9])*/g',).length>maxSymbols)
希望这有帮助
皮特很有趣,我用作参考的两页都没有显示/g标志。除非我错过了。两个答案都很有效,谢谢各位。这就证明了我有很多关于语言间正则表达式语法的知识需要学习。这些标志是JavaScript独有的吗?有趣的是,我的PHP正则表达式在没有“g”标志的情况下按我的预期工作。@patrickn js确实有自己的js风格。我不知道它和PHP有多接近,但它们会有所不同。
.replace(/[a-zA-Z0-9]/g, '')