我在文本框上使用了正则表达式函数,但它无效。
<input name="title" class="txtbxinput" id="title"
onblur="showsongstatus(this.value);title(this);"
onkeyup="title(this);" size="58" >
function title(f) {
f.value = f.value.replace(/[^a-zA-Z\s.'-]/gixsm,'');
f.value = f.value.replace(/\s\s+/g, '\s'); //remove more than 2 white spaces.
f.value = f.value.replace(/'{2,}/g, '\'');
f.value = f.value.replace(/--/g, '-');
f.value = f.value.replace(/\.\./g, '\.');
return f;
}
我将其限制为字母,连字符,点和单引号。
答案 0 :(得分:1)
您的问题是您使用的名为title
的函数恰好与id
同名。
要修复,只需更改您的功能名称即可。例如,以下工作:
<input name="title" class="txtbxinput" id="title"
onblur="showsongstatus(this.value); doTitle(this);"
onkeyup="doTitle(this);" size="58" >
function doTitle(f) {
f.value = f.value.replace(/[^a-zA-Z\s.'-]/gixsm,'');
f.value = f.value.replace(/\s\s+/g, '\s'); //remove more than 2 white spaces.
f.value = f.value.replace(/'{2,}/g, '\'');
f.value = f.value.replace(/--/g, '-');
f.value = f.value.replace(/\.\./g, '\.');
return f;
}
答案 1 :(得分:0)
您可以编写如下代码的JavaScript代码:
<input type="text" id="txt" onkeypress="return check(event);" />
function check(evt) {
var charCode = (evt.which) ? evt.which : event.keyCode
if ((charCode >= 65 && charCode <= 90) || (charCode >= 97 && charCode <= 122) || charCode == 39 || charCode == 46 || charCode == 45)
return false;
else
return true;
}