Python的strip函数用于从字符串开头和末尾移除给定的字符。如何在JavaScript中创建类似的函数?
示例:
str = "'^$ *# smart kitty & ''^$* '^";
newStr = str.strip(" '^$*#&");
console.log(newStr);
输出:
smart kitty
Python的strip函数用于从字符串开头和末尾移除给定的字符。如何在JavaScript中创建类似的函数?
示例:
str = "'^$ *# smart kitty & ''^$* '^";
newStr = str.strip(" '^$*#&");
console.log(newStr);
输出:
smart kitty
这里介绍了lodash的trim()
函数。
该函数用于从字符串中移除开头和结尾的空格或指定的字符。
_.trim(' abc '); // → 'abc'
_.trim('-_-abc-_-', '_-'); // → 'abc'
一种简单但不太有效的方法是查找字符并将其删除:
function strip(str, remove) {
while (str.length > 0 && remove.indexOf(str.charAt(0)) != -1) {
str = str.substr(1);
}
while (str.length > 0 && remove.indexOf(str.charAt(str.length - 1)) != -1) {
str = str.substr(0, str.length - 1);
}
return str;
}
str = str.replace(/(^[ '\^\$\*#&]+)|([ '\^\$\*#&]+$)/g, '')
if (!String.prototype.strip) {
String.prototype.strip = function (string) {
var escaped = string.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");
return this.replace(RegExp("^[" + escaped + "]+|[" + escaped + "]+$", "gm"), '');
};
}
String.prototype
中,这可能不明智,但它确实可以清楚地表明这样的函数与现有的String.prototype.trim()
如何相比。
escaped
的值与正则表达式指南中的escapeRegExp
函数相同。Java编程语言有一个标准库函数专门用于此目的,但是JavaScript没有。&
,但显然不知道如何使用字符类来去除任何[*#&]
中的字符。你的答案解决了这个问题,但没有解释它与他的尝试有何不同之处。 - abarnert
str.replace(/(^\s*&)|(&\s*$)/g, '')
的东西来删除前导和尾随的&
。但是如果有多个字符,正则表达式会是什么? - jerrymousestr
,因为这会掩盖同名类型/函数的名称。 - abarnert$
、*
、#
或&
的实例,而不仅仅是&
的任何实例,可以使用字符类[$*#&]
。 - abarnert