2

我有以下 onkeyup 命令来测试和删除字母逗号和美元符号:

onkeyup="if (/(?:[a-zA-Z]|\s|,|\$)+/ig.test(this.value)) this.value = this.value.replace(/(?:[a-zA-Z]|\s|,|\$)+/ig,'')"

它适用于除美元符号之外的所有内容。

有人可以帮我吗?

谢谢,

4

2 回答 2

3

如果您试图将任意字符串清理为一个数字,您将通过用空字符串替换不是数字的所有内容(假设您想要一个整数)来减少边缘情况。

this.value = this.value.replace( /[^0-9]/, '' );
于 2012-05-29T16:19:21.770 回答
3

HTML将您的反斜杠解释为转义内联 html 字符串,而不是正则表达式。以下代码打印$.

<body onload='alert("\$");'> // prints '$', not '\$'

您需要转义两次,或将正则表达式移出内联 html 并移入函数中。

我相信正确的答案是替换\$\\$,如下:

onkeyup="if (/(?:[a-zA-Z]|\s|,|\\$)+/ig.test(this.value)) this.value = this.value.replace(/(?:[a-zA-Z]|\s|,|\$)+/ig,'')"
于 2012-05-29T16:14:20.110 回答