我有一些字符串,我想通过删除开头和结尾的所有非字母数字字符来清理这些字符串。
它应该适用于这些字符串:
)&*@^#*^#&^%$text-is.clean,--^2*%#**)(#&^ --->> text-is.clean,--^2
-+~!@#$%,.-"^&example-text@is.clean,--^#*%#**)(#&^ --->> example-text@is.clean
我有这个正则表达式,它将它们从整个字符串中删除:
val.replace(/[^a-zA-Z0-9]/g,'')
我如何将其更改为仅从字符串的开头和结尾删除?
最佳答案
修改您当前的 RegExp 以使用 ^
或 $
指定字符串的开头或结尾,并使其变得贪婪。然后,您可以使用 OR |
将两者链接在一起。
val.replace(/^[^a-zA-Z0-9]*|[^a-zA-Z0-9]*$/g, '');
这可以简化为 a-z
,所有字母都使用 i
标记,数字使用 \d
val.replace(/^[^a-z\d]*|[^a-z\d]*$/gi, '');
关于javascript - 如何在 Javascript 中从字符串的开头和结尾 trim 所有非字母数字字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18250734/