Javascript 替换字符串中不匹配的字符
我有一个Javascript 替换字符串中不匹配的字符,javascript,jquery,regex,Javascript,Jquery,Regex,我有一个输入文本框,最大长度为20。在这个文本框中,我只想允许以下字符a-z,a-z,0-9,空白,下划线,破折号-,正斜杠//code>,反斜杠 因此,我提出了以下函数 $(“#se#del”).keyup(函数(e){ 常量正则表达式=/[^a-zA-Z0-9\/\-\]+/g; if(正则表达式测试(此值)){ this.value=this.value.replace(正则表达式“”); } }); 在正则表达式中使用\s作为空格,而不是会杀死你的正则表达式 $(“#se#del”)
输入
文本框,最大长度为20。在这个文本框中,我只想允许以下字符a-z
,a-z
,0-9
,空白
,下划线
,破折号-
,正斜杠//code>,反斜杠
因此,我提出了以下函数
$(“#se#del”).keyup(函数(e){
常量正则表达式=/[^a-zA-Z0-9\/\-\]+/g;
if(正则表达式测试(此值)){
this.value=this.value.replace(正则表达式“”);
}
});代码>
在正则表达式中使用\s
作为空格,而不是
<代码>
会杀死你的正则表达式
$(“#se#del”)。关于('keyup',函数(e){
常量正则表达式=/[^a-zA-Z0-9\s\/\-\\]+/g;
if(正则表达式测试(此值)){
this.value=this.value.replace(正则表达式“”);
}
});代码>
如果不匹配,如何替换文本?只有匹配的才会被替换。你能澄清一下吗?@WiktorStribiżew很抱歉搞混了。例如,如果我输入?
或#
此字符应替换为空字符串,则此字符将被删除,但在删除前会显示。这是因为您正在使用keyup
事件。@WiktorStribiżew如果可能的话,您可以提供一个exmaple吗?我不明白问题是什么,但有人可能会看到下面的答案。您所说的“kill”是什么意思?如果OP使用\s
或空格,这里没有太大区别。我按字面意思使用它。我的意思是它将无法正常工作。OP regex已经删除了#
和?
。我真的不知道为什么这个答案会被接受。我确信OP在代码中的某个地方有一个输入错误。