PHP->;JavaScript正则表达式

PHP->;JavaScript正则表达式,javascript,regex,Javascript,Regex,我在这里很难受。我正在尝试使用一些服务器端PHP,并介绍一些JavaScript,它们做同样的事情——在用户键入时向用户提供提示。我有以下内容,试图查找所有小写字母、大写字母和数字0次或更多次;然后删除这些字符,留下一个包含所有其他内容的字符串。然后取它的长度,并将其与变量maxSymbols(5)进行比较 我无法正确评估这个。。。我错过了什么 else if(passwordValue.replace(/([a-zA-Z0-9])*/, '').length > maxSymbols){

我在这里很难受。我正在尝试使用一些服务器端PHP,并介绍一些JavaScript,它们做同样的事情——在用户键入时向用户提供提示。我有以下内容,试图查找所有小写字母、大写字母和数字0次或更多次;然后删除这些字符,留下一个包含所有其他内容的字符串。然后取它的长度,并将其与变量maxSymbols(5)进行比较

我无法正确评估这个。。。我错过了什么

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, '')