gpt4 book ai didi

javascript - 正则表达式:只有 1 个空格但不在开头,没有数字/特殊字符,空格之前或之后的任何字符串都需要至少有 2 个字母字符

转载 作者:行者123 更新时间:2023-12-01 00:49:27 29 4
gpt4 key购买 nike

我正在尝试创建一个函数来检查字符串是否包含数字、特殊字符或双空格,但我觉得我的编写方式不正确,而且也没有给出所需的结果。

要求:

<强>1。开头不得有空格。

<强>2。除连字符 (-) 外不允许使用任何特殊字符,并且这已经完成

<强>3。如果字符串中任何地方都有一个空格,则不允许有第二个空格

示例:宽x深宽

这是不允许的。

这里实际发生的情况是,如果我在字符串后面插入一个空格,则它不允许超过一个空格,但如果我返回字符串之间的某个位置并在那里插入一个空格,那么它就允许该空格。

<强>4。空格之前或之后至少需要有 2 个字母字符。

这是不允许的:

库马尔

请帮帮我。

 $('#atul').on('input', function(evt) {
var inputValue = $("#atul").val();
var withoutSpclChar = new RegExp(/^[\w| |_-]+$/);
if (!inputValue.match(withoutSpclChar)) {
var newInputWithHas = $("#atul").val();
var newInputWithoutHas = newInputWithHas.substring(0, newInputWithHas.length - 1);
return $("#atul").val(newInputWithoutHas);
}
if ((inputValue.match(new RegExp(" ", "g")) || []).length > 1) {
var newInputValue = $("#atul").val();
var noDoubleSpace = newInputValue.replace(/ +/g, '');
var NoSpaceinEnd = noDoubleSpace.replace(/ $/, "");
return $("#atul").val(NoSpaceinEnd);
}
if(/\d/.test(inputValue)) {
console.log("it has number");
var noNumber = inputValue.replace(/[0-9]/g, '');
return $("#atul").val(noNumber);
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="" id="atul" name="">

最佳答案

编辑:这是您的答案的解决方案: https://jsfiddle.net/6dzf8rw7/1/

        $('#atul').on('input', function(evt) {

var inputValue = $("#atul").val();
inputValue = inputValue.replace(/[^a-zA-Z ]/g, "");
$("#atul").val(inputValue);

var withoutSpclChar = new RegExp(/^[\w| |_-]+$/);
if (!inputValue.match(withoutSpclChar)) {
var newInputWithHas = $("#atul").val();
var newInputWithoutHas = newInputWithHas.substring(0, newInputWithHas.length - 1);
return $("#atul").val(newInputWithoutHas);
}
if (inputValue.match(/\s+/g)) {
$("#atul").val(spaceHandle(inputValue))
}

if ((inputValue.match(new RegExp(" ", "g")) || []).length > 1) {
console.log();
$("#atul").val(spaceHandle(inputValue))
var newInputValue = $("#atul").val();
var noDoubleSpace = newInputValue.replace(/ +/g, '');
var NoSpaceinEnd = noDoubleSpace.replace(/ $/, "");
return $("#atul").val(NoSpaceinEnd);
}
if(/\d/.test(inputValue)) {
console.log("it has number");
var noNumber = inputValue.replace(/[0-9]/g, '');
return $("#atul").val(noNumber);
}
});

function spaceHandle(s) {
console.log(s);
var replaced = s.split(' ');
console.log(replaced);
var final_string = '';
$.each(replaced,function(index,value){
if(index === 0 && value.length > 1){
final_string = final_string+value+' ';
}else{
final_string = final_string+value;
}
})
console.log(final_string);

return final_string;
}

关于javascript - 正则表达式:只有 1 个空格但不在开头,没有数字/特殊字符,空格之前或之后的任何字符串都需要至少有 2 个字母字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57105806/

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