在提交表单之前,Javascript在X字符之后删除

Javascript strip after X characters prior to form submit

本文关键字:字符 之后 删除 Javascript 提交 表单      更新时间:2023-09-26

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

<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">

/*****开始问题******/

使用这个问题/答案的小提琴,我可以看到他们是如何使用javascript这样:

$('.btnfetchcont').on('click',function(){
    var value=$('#txtCont').val();
    value=value.replace(/^(0|'+'d'd) */, '')
    alert(value);
});

我目前有一个值,以6个字符开始,以破折号结束,破折号后面最多可以有3个数字。

示例1:123456-01

示例2:123456-9

例3:123456-999

我试图在值中插入一个-。用运气代替上帝。我如何删除-和任何值之后这提交,让我只提交前6位数字?

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

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

var string = "123456-01";
console.log(string.split('-')[0]);
console.log(string.substring(0,6));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

你可以使用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"));

编辑:在我看来,.split('-')的答案比下面的好。

假设你总是只需要前6个字符,像这样的东西应该做你想要的:

$('.btnfetchcont').on('click',function(){
    var value = $('#txtCont').val();
    value = value.substr(0, 6);
    alert(value);
});

或合并两行:

var value = $('#txtCont').val().substr(0, 6);

在这里阅读.substr()

如果你想在破折号之前得到所有内容,这样做:

var value = $('#txtCont').val().match(/('d*)-('d*)/);

value现在是一个数组,其中value[0]是原始字符串,value[1]是破折号前的每个数字,value[2]是破折号后的每个数字。

只对数字有效。如果您需要任何字符而不仅仅是数字,请将'd替换为.。即:.match(/(.*)-(.*)/) .