在表单提交之前的X字符之后的Javascript strip

时间:2016-10-12 14:04:17

标签: javascript jquery

更新**使用下面提供的解决方案我添加了这个没有运气?

<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位数字?

3 个答案:

答案 0 :(得分:2)

似乎你只想从字符串中获得前6个字符。

使用.split()substring(start, end)获取字符串部分。

&#13;
&#13;
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;
&#13;
&#13;

答案 1 :(得分:1)

您可以使用split而不是regex

 value=value.split("-")[0];

修复你的正则表达式

/(-[0|\+\d\d]*)/g

&#13;
&#13;
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;
&#13;
&#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(/(.*)-(.*)/)