更新**使用下面提供的解决方案我添加了这个没有运气?
<script>
$('.LogIn_submit').on('click',function(){
var value=$('#Log_In_group_2_FieldB').val();
value=value.replace(/^\s\d{6}(?=\-)&/, '')
alert(value);
});
</script>
以下是表单元素,希望它是一个简单的修复:
<input id="Log_In_group_2_FieldB" name="Log_In_group_2_FieldB" type="password" value="<?php echo((isset($_GET["invalid"])?ValidatedField("login","Log_In_group_2_FieldB"):"".((isset($_GET["failedLogin"]) || isset($_GET["invalid"]))?"":((isset($_COOKIE["RememberMePWD"]))?$_COOKIE["RememberMePWD"]:"")) ."")); ?>" class="formTextfield_Medium" tabindex="2" title="Please enter a value.">
<input class="formButton" name="LogIn_submit" type="submit" id="LogIn_submit" value="Log In" tabindex="5">
/ *****开头问题****** /
使用this question/answers's fiddle我可以看到他们如何使用这样的javascript:
$('.btnfetchcont').on('click',function(){
var value=$('#txtCont').val();
value=value.replace(/^(0|\+\d\d) */, '')
alert(value);
});
我目前有一个以6个字符开头的值,以破折号结尾,最多3个数字可以跟在短划线上。
Exmaple 1:123456-01
示例2:123456-9
示例3:123456-999
我试图在value.replace cod中插入 - 而没有运气。如何在提交后删除 - 以及之后的任何值,以便我只提交前6位数字?
答案 0 :(得分:2)
似乎你只想从字符串中获得前6个字符。
使用.split()
或substring(start, end)
获取字符串部分。
var string = "123456-01";
console.log(string.split('-')[0]);
console.log(string.substring(0,6));
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
答案 1 :(得分:1)
您可以使用split而不是regex
value=value.split("-")[0];
修复你的正则表达式
/(-[0|\+\d\d]*)/g
function extractNumber(value){
return value.replace(/(-[0|\+\d\d]*)/g, '');
}
console.log(extractNumber("123456-01"));
console.log(extractNumber("123456-9"));
console.log(extractNumber("123456-999"));
&#13;
答案 2 :(得分:0)
修改: .split('-')
答案优于以下内容,imo。
假设你总是只想要前6个字符,那么这样的东西应该做你想要的:
$('.btnfetchcont').on('click',function(){
var value = $('#txtCont').val();
value = value.substr(0, 6);
alert(value);
});
或合并两行:
var value = $('#txtCont').val().substr(0, 6);
了解.substr()
here。
如果你想在破折号之前获取所有内容,请执行以下操作:
var value = $('#txtCont').val().match(/(\d*)-(\d*)/);
value
现在是一个数组,其中value[0]
是原始字符串,value[1]
是短划线前的每个数字,value[2]
是短划线后的每个数字。
这仅适用于数字。如果您想要任何字符而不只是数字,请将\d
替换为.
。即:.match(/(.*)-(.*)/)
。