正则表达式的文本框问题

时间:2011-09-03 05:16:55

标签: javascript regex

我在文本框上使用了正则表达式函数,但它无效。

<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;
}

我将其限制为字母,连字符,点和单引号。

2 个答案:

答案 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;
        }