使用 JavaScript 从字符串中删除除空格以外的所有特殊字符
Remove all special characters except space from a string using JavaScript
我想使用 JavaScript 从字符串中删除除空格以外的所有特殊字符。
例如 abc's test#s
应输出为 abcs tests
.
您应该使用带有单个正则表达式的字符串替换函数。假设特殊字符,你的意思是任何不是字母的东西,这是一个解决方案:
const str = "abc's test#s";
console.log(str.replace(/[^a-zA-Z ]/g, ""));
您可以指定要删除的字符:
string = string.replace(/[&'/''#,+()$~%.'":*?<>{}]/g, '');
或者,要更改除数字和字母之外的所有字符,请尝试:
string = string.replace(/[^a-zA-Z0-9]/g, '');
第一种解决方案不适用于任何 UTF-8 字母表。(它将剪切文本,例如 Привіт(。我已经设法创建了一个不使用正则表达式的函数,并在JavaScript引擎中使用了良好的UTF-8支持。如果一个符号在大写和小写中相等,那么这个想法很简单,它是一个特殊字符。唯一的例外是空格。
function removeSpecials(str) {
var lower = str.toLowerCase();
var upper = str.toUpperCase();
var res = "";
for(var i=0; i<lower.length; ++i) {
if(lower[i] != upper[i] || lower[i].trim() === '')
res += str[i];
}
return res;
}
更新:请注意,此解决方案仅适用于包含小字母和大写字母的语言。在像中文这样的语言中,这是行不通的。
更新2:当我进行模糊搜索时,我遇到了原始解决方案。如果还尝试删除特殊字符以实现搜索功能,则有更好的方法。使用任何音译库,它只会从拉丁字符生成字符串,然后简单的正则表达式将完成删除特殊字符的所有魔力。(这也适用于中国人,您还将通过制作 Tromsø
== Tromso
获得附带好处(。
搜索全部不是(单词字符||空格(:
str.replace(/[^'w ]/, '')
我不懂 JavaScript,但使用正则表达式是不可能的吗?
像[^'w'd's]
这样的东西会匹配除数字、字符和空格之外的任何内容。在 JavaScript 中找到语法只是一个问题。
我尝试了Seagul非常有创意的解决方案,但发现它也将数字视为特殊字符,这不符合我的需求。所以这是我对 Seagul 解决方案的(故障安全(调整......
//return true if char is a number
function isNumber (text) {
if(text) {
var reg = new RegExp('[0-9]+$');
return reg.test(text);
}
return false;
}
function removeSpecial (text) {
if(text) {
var lower = text.toLowerCase();
var upper = text.toUpperCase();
var result = "";
for(var i=0; i<lower.length; ++i) {
if(isNumber(text[i]) || (lower[i] != upper[i]) || (lower[i].trim() === '')) {
result += text[i];
}
}
return result;
}
return '';
}
const str = "abc's@thy#^g&test#s";
console.log(str.replace(/[^a-zA-Z ]/g, ""));
尝试使用这个
var result= stringToReplace.replace(/[^'w's]/g, '')
[^]
用于否定,'w
用于[a-zA-Z0-9_]
字字符,'s
用于空格, 面向全球/[]/g
使用正则表达式
let string = "!#This tool removes $special *characters* /other/ than! digits, characters and spaces!!!$";
var NewString= string.replace(/[^'w's]/gi, '');
console.log(NewString);
结果//此工具删除数字字符和空格以外的特殊字符
现场示例 : https://helpseotools.com/text-tools/remove-special-characters
点(.(可能不被认为是特殊的。我在Mozfet和Seagull的答案中添加了一个OR条件:
function isNumber (text) {
reg = new RegExp('[0-9]+$');
if(text) {
return reg.test(text);
}
return false;
}
function removeSpecial (text) {
if(text) {
var lower = text.toLowerCase();
var upper = text.toUpperCase();
var result = "";
for(var i=0; i<lower.length; ++i) {
if(isNumber(text[i]) || (lower[i] != upper[i]) || (lower[i].trim() === '') || (lower[i].trim() === '.')) {
result += text[i];
}
}
return result;
}
return '';
}
试试这个:
const strippedString = htmlString.replace(/(<([^>]+)>)/gi, "");
console.log(strippedString);
const input = `#if_1 $(PR_CONTRACT_END_DATE) == '23-09-2019' #
Test27919<alerts@imimobile.com> #elseif_1 $(PR_CONTRACT_START_DATE) == '20-09-2019' #
Sender539<rama.sns@gmail.com> #elseif_1 $(PR_ACCOUNT_ID) == '1234' #
AdestraSID<hello@imimobile.co> #else_1#Test27919<alerts@imimobile.com>#endif_1#`;
const replaceString = input.split('$(').join('->').split(')').join('<-');
console.log(replaceString.match(/(?<=->).*?(?=<-)/g));
要从字符串中删除其特殊字符,请准备一个列表,然后使用javascript替换函数以删除所有特殊字符。
var str = 'abc'de#;:sfjkewr47239847duifyh';
alert(str.replace("'","").replace("#","").replace(";","").replace(":",""));
或者,您可以对整个字符串运行循环,并将单个字符与 ASCII 代码进行比较并重新生成一个新字符串。
- 用于在Javascript中删除多个空格的特殊字符
- 将字符串从第二个空格切成特殊字符
- 正则表达式,用于除所有空格和一个特殊字符之外的所有内容
- JavaScript/jQuery:在特殊字符和关闭html标记后插入空格
- 如何使用 JavaScript 删除字符串中除数字和空格之外的所有特殊字符
- 正则表达式转义空格和特殊字符
- 特殊字符替换为空格
- 如何在javascript中用一个特殊字符开头的单词内的空格替换下划线
- JavaScript正则表达式,用于删除特殊字符和多余空格,同时保留逗号
- 带有特殊字符和空格的Javascript Regex
- 过滤javascript中除空格以外的特殊字符
- 可以't发送包含特殊字符的密码(用空格代替)
- Javascript Regex可以删除任何空格、特殊字符和数字
- 正则表达式:在空格上拆分一个字符串 + 每个要单独包含的特殊字符
- 如何删除特殊字符,但不删除空格
- Regex仅包含数字和2个仅带空格的特殊字符
- 仅用于数字的正则表达式(没有空格或特殊字符),使用ng-pattern
- Regexp表示不允许在结束/开始处使用特殊字符,但应该允许空格
- 如何从字符串中删除空格和特殊字符
- 通过弹出窗口转义url中的空格和特殊字符