我有以下onkeyup命令来测试和删除字母逗号和美元符号:
onkeyup="if (/(?:[a-zA-Z]|\s|,|\$)+/ig.test(this.value)) this.value = this.value.replace(/(?:[a-zA-Z]|\s|,|\$)+/ig,'')"
除美元符号外,它适用于所有物品。
有人可以帮助我吗?
谢谢, BRDS
答案 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,'')"