簡體   English   中英

jQuery 從字符串中刪除特殊字符等

[英]jQuery remove special characters from string and more

我有一個這樣的字符串:

var str = "I'm a very^ we!rd* Str!ng.";

我想要做的是從上面的字符串中刪除所有特殊字符並替換空格,如果它們被鍵入,下划線,帶有 - 字符。

上面的字符串在“轉換”之后看起來像這樣:

var str = 'im-a-very-werd-strng';

replace(/[^a-z0-9\\s]/gi, '')會將字符串過濾為僅字母數字值,而replace(/[_\\s]/g, '-')將替換下划線和空格連字符:

str.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '-')

Regex 的來源: RegEx for Javascript to allow only alphanumeric

這是一個演示: http : //jsfiddle.net/vNfrk/

假設“特殊”是指非單詞字符,那么這很容易。

str = str.replace(/[_\W]+/g, "-")
str.toLowerCase().replace(/[\*\^\'\!]/g, '').split(' ').join('-')

從字符串句子中刪除數字、下划線、空格和特殊字符。

str.replace(/[0-9`~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi,'');

演示

這將刪除所有特殊字符

 str.replace(/[_\W]+/g, "");

這真的很有幫助,可以解決我的問題。 請運行以下代碼並確保它有效

 var str="hello world !#to&you%*()"; console.log(str.replace(/[_\\W]+/g, ""));

由於我無法評論 Jasper 的回答,我想指出他的解決方案中的一個小錯誤:

str.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '-');

問題是第一個代碼刪除了所有連字符,然后嘗試替換它們:) 您應該反轉替換調用並將連字符添加到第二個替換正則表達式。 像這樣:

str.replace(/[_\s]/g, '-').replace(/[^a-z0-9-\s]/gi, '');

刪除/替換 Jquery 中的所有特殊字符:

如果

str = My name is "Ghanshyam" and from "java" background

並想刪除所有特殊字符 (") 然后使用它

str=str.replace(/"/g,' ')

結果:

我的名字是 Ghanshyam,來自 Java 背景

其中 g 表示全局

var str = "I'm a very^ we!rd* Str!ng.";
$('body').html(str.replace(/[^a-z0-9\s]/gi, " ").replace(/^\s+|\s+$|\s+(?=\s)/g, "").replace(/[_\s]/g, "-").toLowerCase());

第一個正則表達式用空格刪除特殊字符而不是從字符串中刪除額外的空格,最后一個正則表達式用“-”替換空格

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM