Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP/Javascript替换函数的构造_Php_Javascript_Regex_Replace - Fatal编程技术网

PHP/Javascript替换函数的构造

PHP/Javascript替换函数的构造,php,javascript,regex,replace,Php,Javascript,Regex,Replace,我想请你帮我解决这个问题。 我有这段php代码,我用它清除介词、空格、数字等中的$pname,使其更适合排序 $prepositions = array(" ", "tert-", "dl-"); //only a part of all $patterns = array("'([0-9])'si", "/\b\w\b\s?/", "/[^a-zA-Z0-9\s]/"); $sname = preg_replace($patterns, '', str_replace($pr

我想请你帮我解决这个问题。 我有这段php代码,我用它清除介词、空格、数字等中的
$pname
,使其更适合排序

$prepositions = array(" ", "tert-", "dl-");         //only a part of  all
$patterns = array("'([0-9])'si", "/\b\w\b\s?/", "/[^a-zA-Z0-9\s]/");
$sname = preg_replace($patterns, '', str_replace($prepositions, "", strtolower($pname])));
我正在尝试将此代码转换为javascript,但代码太庞大了。这是其中的一部分:

function createsname ()
{
    if(document.getElementById('pname').value != '') 
    {
    var myString = new String();
    myString = document.getElementById('pname').value.toLowerCase();
    var reg0 = new RegExp(" ");
    var sname0 = myString.replace(reg0, "");
    var reg1 = new RegExp(/\d/g);
    var sname = sname0.replace(reg1, "");
    document.getElementById('sname').value = sname;
    }
}
php结果示例:

1,2-Bis(3-Methylthiophene2-yl)ethane-1,2-dione
bismethylthiopheneylethanedione
4H-Cyclopenta[2,1-b3,4-b]dithiophene
cyclopentadithiophene
5-Acetyl-2-amino-4-(2-furanyl)-6-methyl-4H-pyran-3-carbonitrile
acetylaminofuranylmethylpyrancarbonitrile
5-Acetyl-2-amino-4-(4-methoxyphenyl)-6-methyl-4H-pyran-3-carbonitrile
acetylaminomethoxyphenylmethylpyrancarbonitrile
5-Acetyl-2-amino-6-methyl-4-phenyl-4H-pyran-3-carbonitrile
acetylaminomethylphenylpyrancarbonitrile
Tri-O-acetyl-D-glucal
acetylglucal
5-Amino-1,3-dimethyltricyclo(3,3,1,13,7) dekane hydrochloride
aminodimethyltricyclodekanehydrochloride
DL-2-Amino-1-propanol
aminopropanol
(S)-(+)-2-Amino-1-propanol
aminopropanol
a-(3-Aminopropyl)-w-(3-aminopropoxy)-poly (oxy-1,2-ethanediyl)
aminopropylaminopropoxypolyoxyethanediyl
N-(3'-Aminopropyl)-2-pyrrolidone
aminopropylpyrrolidone
1,1,1-(5,5,5-benzene-1,3,5-triyl-tri-thiophen-2-yl)-tris-ethanone
benzenetriyltrithiophenyltrisethanone
N-[(1,4-Benzodioxane-2-yl)carboxyl]piperazine
benzodioxaneylcarboxylpiperazine
(3R)-3-{[(Benzyloxy)carbonyl]amino}butanoic acid
benzyloxycarbonylaminobutanoicacid
1,5-Bis-(2-furanyl)-1,4-pentadiene-3-one
bisfuranylpentadieneone
1-[N,N-Bis(2-hydroxyethyl)amino]-2-propanol
bishydroxyethylaminopropanol
Bisphenol A bis(chloroformate)
bisphenolabischloroformate
Bisphenol A diacetate
bisphenoladiacetate
5''-Bromo-2,2'-5',2''-terthiophene-5-carboxaldehyde
bromoterthiophenecarboxaldehyde
tert-Butyldimethylamine
butyldimethylamine
(E)-3-Chloro-2-methyl-3-(2-thienyl)acrolein
chloromethylthienylacrolein
alpha-Cyano-4-hydroxycinnamic acid
cyanohydroxycinnamicacid
Di-tert-butyl dicarbonate
dibutyldicarbonate
trans-1,4-Dichloro-2-butene
dichlorobutene
a,a-Dichloromethyl methyl ether
dichloromethylmethylether
2,2-Dimethyl-1,3-dioxolane-4-methanol p-toluenesulfonate
dimethyldioxolanemethanolptoluenesulfonate
(R)-2,2-Dimethyl-1,3-dioxolane-4-methanol p-toluenesulfonate
dimethyldioxolanemethanolptoluenesulfonate
4a(R),9b(S)-(-)-cis-2,8-Dimetyl-2,3,4,4a,5,9b-hexahydro-1H-pyrido[4,3-b]indol
dimetylhexahydropyridoindol
4,4'-Dipyridyl N,N'-dioxide hydrate
dipyridylndioxidehydrate
Ethyl 1H-pyrazole-3-carboxylate
ethylpyrazolecarboxylate
Methyl 1H-benzo[4,5]furo[3,2-b]pyrrole-2-carboxylate
methylhbenzofuropyrrolecarboxylate
Methyl 4H-furo[3,2-b]pyrrole-5-carboxylate
methylfuropyrrolecarboxylate
4-Oxo-2,2,6,6-tetramethylpiperidinoxy
oxotetramethylpiperidinoxy
3-Oxo-3-(2-thienyl)propanenitrile
oxothienylpropanenitrile
1,4-Pentadien-3-ol
pentadienol
N-[3-Phenylcoumarinyl-(7)]-N'-(g-N,N'-dimethylaminopropyl)-urea
phenylcoumarinyldimethylaminopropylurea
N,N',N'',N'''-Tetraacetylglycouril
tetraacetylglycouril
2,3,4,6-Tetra-O-benzoyl-b-D-glucopyranosyl isothiocyanate
tetrabenzoylglucopyranosylisothiocyanate
DL-1,2,3,4-Tetrachlorobutane
tetrachlorobutane
2,4,6-Tri-tert-butylaniline
tritertbutylaniline
1,3,5-Tri-tert-butylbenzene
tritertbutylbenzene
3-Amino-2,3,4,5-tetrahydro-2-oxo-2H-1-benzazepin
aminotetrahydrooxobenzazepin
Tris(3-sulfonatophenyl)phosphine hydrate, sodium salt
trissulfonatophenylphosphinehydratesodiumsalt
2-(Tritylamino)-a-(methoxyimino)-4-thiazoleacetic acid hydrochloride
tritylaminomethoxyiminothiazoleaceticacidhydrochloride
所以,如果你有什么想法,我可以用javascript写它,请帮助我

var myString = document.getElementById('pname').value.toLowerCase();
var replaces  = [" ", "tert-", "dl-", /([0-9])/si, /\b\w\b\s?/, /[^a-zA-Z0-9\s]/];

for ( var k in replaces ) {
  myString = myString.replace(replaces[k], "");
}
Brad Christie
提案:

for ( var k = 0; k < replaces.length; k++ ) {
  myString = myString.replaces(replace[k], "");
}
for(var k=0;k
Brad Christie
提案:

for ( var k = 0; k < replaces.length; k++ ) {
  myString = myString.replaces(replace[k], "");
}
for(var k=0;k
根据您给出的示例和我可以测试的内容,我得出以下结论:

String.prototype.Lukas = function(){
    return this.toLowerCase().replace(/(\(.*?\)|\[.*?\]|\b\w\b\s?|(?:dl|tert|\d+[a-z]){1,4}-|\W|\d)/ig, '');
};

再一次,仅基于我所能看到的。像这样使用它:

// assign the original string to a variable
var original = '1,2,4-Triazolo-[4,3,a]pyridin-3(2H)-one';

// then get the desired result using "Lukas()"
var result = original.Lukas();

好的,根据你给出的例子和我可以测试的,我得出以下结论:

String.prototype.Lukas = function(){
    return this.toLowerCase().replace(/(\(.*?\)|\[.*?\]|\b\w\b\s?|(?:dl|tert|\d+[a-z]){1,4}-|\W|\d)/ig, '');
};

再一次,仅基于我所能看到的。像这样使用它:

// assign the original string to a variable
var original = '1,2,4-Triazolo-[4,3,a]pyridin-3(2H)-one';

// then get the desired result using "Lukas()"
var result = original.Lukas();


你能提供这个测试的输入/输出示例吗?@Brad Christie:我在原始帖子(编辑)中添加了一些示例实际上,我只是在编辑模式下查看了帖子,我想我现在明白了。发布了答案。试一下大小。你能提供一些输入/输出样本来测试吗?@Brad Christie:我在原始帖子(编辑)中添加了一些示例实际上,我只是在编辑模式下查看了帖子,我想我现在明白了。发布了答案。在size上试试看。可能应该使用
for(var k=0;k以获得更好的可移植性。一些浏览器不喜欢javascript“foreach”。可能应该使用
for(var k=0;k以获得更好的可移植性。有些浏览器不喜欢javascript“foreach”。我用所有的pname检查了它,结果很好。我在replace函数中做了一些更改,以获得更相同的结果,但仍然存在一些无法修复的问题。请看第一个不正确的结果,我想它是由最后一个代码(|[a-z]+\d.*)生成的,但我不知道,如何修复它。@Brad Christie:其他两个不正确的结果并不重要,但我想知道是否有可能得到与php相同的结果。最后一个问题,有可能替换介词(tri-tert-something,tert-something),但前提是它们是单独的,而不是它们一起存在(tri-tert-something),比如演示中的最后一个例子?我感谢你的帮助。谢谢你。@Lukas:再一次,你能给我一个适当的样本,看看你遇到的事情和它们应该是什么样的值,特别是你提到的那些古怪的东西吗?只需重新编辑您的文章,使用以下模式将它们放置在代码块中:
原始文本、新行、所需结果、新行
,并不断重复几个条目。@Brad Christie:好的,我在我的文章中添加了更多的姓名示例。@Lukas:好的,谢谢。我会看看我一整天能想出什么来。;-)我检查了所有的pnames,效果很好。我在replace函数中做了一些更改,以获得更相同的结果,但仍然存在一些无法修复的问题。请看第一个不正确的结果,我想它是由最后一个代码(|[a-z]+\d.*)生成的,但我不知道,如何修复它。@Brad Christie:其他两个不正确的结果并不重要,但我想知道是否有可能得到与php相同的结果。最后一个问题,有可能替换介词(tri-tert-something,tert-something),但前提是它们是单独的,而不是它们一起存在(tri-tert-something),比如演示中的最后一个例子?我感谢你的帮助。谢谢你。@Lukas:再一次,你能给我一个适当的样本,看看你遇到的事情和它们应该是什么样的值,特别是你提到的那些古怪的东西吗?只需重新编辑您的文章,使用以下模式将它们放置在代码块中:
原始文本、新行、所需结果、新行
,并不断重复几个条目。@Brad Christie:好的,我在我的文章中添加了更多的姓名示例。@Lukas:好的,谢谢。我会看看我一整天能想出什么来。;-)