我做错了,这是肯定的:-)我检查了https://regex101.com/以检查正则表达式是否正确并且找不到任何问题。我也是jQuery / JavaScript的新手,但是控制台没有触发任何语法错误等。
我测试了代码,将'Goedemorgen'替换为'Goodmorning'。 工作正常所以我猜错误是在replace / regex中?我不确定!任何帮助将不胜感激。
$( document ).ready(function() {
$(".wpcf7-number").focusout(function() {
var InputVal = $('.wpcf7-number').val();
var InputValNew = InputVal.replace(/^[0-9]*$/g,'');
console.log(InputValNew + ' New Var');
});
});
我希望获得的输出: 033-2245-22455至:033224522455(所以没有 - )。
不要苛刻我还在学习!
答案 0 :(得分:3)
您想删除所有不是数字的字符。
您需要将^
移动到字符类(开头),以便它否定范围的含义,并删除量词和锚点。
var InputValNew = InputVal.replace(/[^0-9]/g,'');
你的正则表达式 - /^[0-9]*$/g
- 匹配整个字符串,该字符串为空或仅包含数字。 ^
这里是字符串锚点的开头,$
是字符串acnhor的结尾。 *
表示* 0或更多次出现。因此,/g
全局修饰符毫无意义:如果传递1个字符串并想要完全匹配,则不能有多个匹配。
还有\D
类匹配任何非数字字符。它是JS中[^\d]
或[^0-9]
的绝对同义词。
答案 1 :(得分:2)
您可以使用\D
匹配任何无数字值
$(document).ready(function() {
$(".wpcf7-number").focusout(function() {
var InputVal = $('.wpcf7-number').val();
var InputValNew = InputVal.replace(/\D/g, '');
console.log(InputValNew + ' New Var');
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type=text class="wpcf7-number" />
答案 2 :(得分:1)
适合您的示例代码
var a ="033-2245-22455";
var b =a.replace(/-/g ,'');
alert(b);
&#13;