gpt4 book ai didi

javascript - javascript 中的正则表达式总是只匹配 1 个字符?

转载 作者:行者123 更新时间:2023-11-30 07:19:00 26 4
gpt4 key购买 nike

似乎无论我输入什么,它总是只匹配 1 个字符。 m.index 在比赛中始终为 0,而 m.length 始终为 1。我在这里做错了什么?我已经尝试过(并从中窃取了一些代码)http://www.regular-expressions.info/javascriptexample.html它在那里按预期工作并匹配一个完整的数字。

你可以在这里看到一个活生生的例子http://jsbin.com/aqobe

<html>
<head>
<script type="text/javascript">
function __numberBox__correctFormat(text,allow_float){
var r;
if(allow_float){
r=/\$?[\d,\.\W]+/;
}else{
r=/\$?[\d,\W]+/;
}
var m=r.exec(text);
if(m==null){
return false;
}
alert(m.index); alert(m.length);

if(m.index!=0 || m.length!=text.length){ //must match the whole string
return false;
}

return true;
}
</script>
</head>

<body>
Enter your name: <input type="text" id="fname" onchange="
if(__numberBox__correctFormat(this.value,true)){
alert('tis true');
}else{
alert('tis false');
}" />
</body>

</html>

注意我想让它接受这个输入

1234532,134$123493.29

最佳答案

Regex.exec 的返回值始终是一个包含匹配列表的数组。在您的情况下,正则表达式将匹配整个字符串,因此返回值是一个包含 1 个包含匹配项的元素的数组。

/\$?[\d,\.\W]+/.exec("$493.29")
["$493.29"]

关于javascript - javascript 中的正则表达式总是只匹配 1 个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2097370/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com