阻止用户输入美元符号($)

时间:2014-04-03 20:46:51

标签: javascript asp.net regex vb.net

我想使用正则表达式来防止美元" $"从输入表格的符号。我尝试过正则表达式,似乎无法弄明白。任何协助都会受到欢迎。

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
    StripNonAlphabetCharacters(TextBox1)
End Sub

        Public Sub StripNonAlphabetCharacters(ByVal input As TextBox)
        ' pattern matches any character that is NOT A-Z (allows upper and lower case alphabets)
    Dim rx As New Regex("[^a-zA-Z]")
    If (rx.IsMatch(input.Text)) Then
        Dim startPosition As Integer = input.SelectionStart - 1
        input.Text = rx.Replace(input.Text, "")
        input.SelectionStart = startPosition
    End If
End Sub

2 个答案:

答案 0 :(得分:2)

Fiddle

您不需要使用正则表达式来解决此问题。我觉得使用输入字段的onkeypress事件处理程序是一个更好的解决方案。

var field = document.getElementsByTagName('input')[0];
field.onkeypress = function(e) {
    //check if the charCode of the symbol inputed is 36 (the character code of $)
    if (e.charCode === 36) {
        return false; //prevent it from being inputted into the field
    }  
};

事件处理程序传递一个事件对象,该对象提供有关触发事件的操作的描述。 onkeypress事件的一个有用属性是charCode属性,它显示了按下的键的字符代码(我相信这些数字是字符的ASCII表示形式)。

答案 1 :(得分:0)

试试这个表达式=> / ^([^ $])+ $ /

    expression = /^([^$])+$/;

    if( expression.test("String Value") ){
       alert("String value has no $");
    }else{
       alert("$ found in string");
    }