正则表达式 - 从文本输入中删除美元符号

时间:2012-05-29 16:10:32

标签: javascript html regex onkeyup

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

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

除美元符号外,它适用于所有物品。

有人可以帮助我吗?

谢谢, BRDS

2 个答案:

答案 0 :(得分:3)

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

this.value = this.value.replace( /[^0-9]/, '' );

答案 1 :(得分:2)

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,'')"